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(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント