mysqlクエリでjdbcTemplateを使用して、IN句でリスト値を渡したい。以下のように、
List<Long> listId= new ArrayList<>();
listId.add(1234L);
listId.add(1235L);
listId.add(1236L);
String type ="A";
List<BojoClass> result = new ArrayList<>();
String sql="select column1,column2 from table where columName in(?)"
result = jdbcTemplate.query(sql, new Object[]{listId}, new BeanPropertyRowMapper<BojoClass>(BojoClass.class));
これを最善の方法で達成する方法は?
NamedParameterJdbcTemplate
あなたのために役立つかもしれません。
サンプルについては、これを試してください:)
NamedParameterJdbcTemplate jdbcTemplate = ...
List<Long> listId= new ArrayList<>();
listId.add(1234L);
listId.add(1235L);
listId.add(1236L);
String sql="select column1,column2 from table where columName in(:ids)";
List<BojoClass> result = new ArrayList<>();
Map idsMap = Collections.singletonMap("ids", listId);
result = jdbcTemplate.query(sql, idsMap, ParameterizedBeanPropertyRowMapper.newInstance(BojoClass.class));
編集:
を取得できる場合はDataSource
、次のNamedParameterJdbcTemplate
ようなコンストラクターでオブジェクトを初期化できます。
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate.getDataSource());
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加