Spring JDBCDaoSupport - 处理多个选择

时间:2013-09-12 12:49:40

标签: sql spring jdbctemplate

Spring是否有任何允许批量选择的功能?我基本上有n个选择要执行,具体取决于列表中的记录数。目前因为列表的大小总是在变化,我必须动态构建将要执行的SQL。最终产品看起来像这样

select * from record_details t WHERE id IN ((?),(?),(?))

然而,动态生成此SQL的代码很混乱,我想知道是否有更好的方法来处理这类问题?

2 个答案:

答案 0 :(得分:2)

NamedParameterJdbcTemplate(根据支持类)确实有这种支持。

public void someRepoMethod(List ids) {
    String query = "select * from record_details where id in (:ids)";
    getNamedParameterJdbcTemplate().query(query, Collections.singletonMap("ids", ids), new YourRowMapper());
}

答案 1 :(得分:0)

如果您不想自己生成SQL,则必须使用一些现有框架。据我所知myBatis,它比hibernate更轻量级,所以它可以更适合你,但可能还有其他更合适的。