Spring bootでBeanPropertyRowMapperの使い方
select * from ~
で検索結果を取得する場合は、BeanPropertyRowMapperを使ってエンティティに突っ込む方法があります。
以下はREST APIの例です。
@RestController @RequiredArgsConstructor @RequestMapping(path = "/api") public class DemoController { private final JdbcTemplate jdbcTemplate; @RequestMapping(path = "/regist", method = RequestMethod.POST) public ResponseEntity<Object> regist() throws JsonParseException, JsonMappingException, IOException { RowMapper<XXEntity> mapper = new BeanPropertyRowMapper<>(XXEntity.class); List<XXEntity> list = jdbcTemplate.query("select * from sample_tbl", mapper); return new ResponseEntity<Object>(list, HttpStatus.OK); } }
ある列の1カラムだけ取得したい場合とかはわざわざDtoクラスを作らずにすませたいです。
そういう場合は以下のように記述します。プレースホルダーがuserIdです。
String name = jdbcTemplate.queryForObject("select name from sample_tbl where user_id = ?", new Object[]{new String(userId)}, String.class);
第二引数でプレースホルダー、第三引数で戻り値のクラスを指定します。
これで1列の1カラムを取得することが可能です。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント