Spring 是否有任何允许批量选择的功能?根据列表中的记录数,我基本上有 n 个要执行的选择。目前,由于列表的大小总是在变化,我必须动态构建将要执行的 SQL。最终产品看起来像这样
select * from record_details t WHERE id IN ((?),(?),(?))
但是动态生成此 SQL 的代码很混乱,我想知道是否有更好的方法来解决此类问题?
Spring 是否有任何允许批量选择的功能?根据列表中的记录数,我基本上有 n 个要执行的选择。目前,由于列表的大小总是在变化,我必须动态构建将要执行的 SQL。最终产品看起来像这样
select * from record_details t WHERE id IN ((?),(?),(?))
但是动态生成此 SQL 的代码很混乱,我想知道是否有更好的方法来解决此类问题?
(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());
}
如果您不想自己生成 SQL,则必须使用一些现有的框架。据我所知, myBatis比 hibernate 更轻量级,因此它更适合您,但可能还有其他更适合的。