在Spring的NamedParameterJdbcTemplate中。如何查询以执行"从学生中选择*#34;使用Spring 3.1.x版返回List而不提供任何参数?
根据
http://docs.spring.io/spring/docs/3.1.2.RELEASE/javadoc-api/org/springframework/jdbc/core/namedparam/NamedParameterJdbcTemplate.html
有
列表 query(String sql,Map paramMap,RowMapper rowMapper)
但我不想提供任何paramMap,因为我正在做一个"选择*"。
如何使用3.1.x版本完成此操作?
由于
答案 0 :(得分:1)
除了@Kirill Ch示例之外,Spring还有BeanPropertyRowMapper
,它可以通过匹配名称来将行的列值映射到属性。确保您的属性和列具有相同的名称。例如,orgId列名为ORGID或org_id
public List<Organization> getAllOrganization(){
String sql = "SELECT * FROM organization";
List<Organization> orgList = namedParamJdbcTemplate.query(sql, new
BeanPropertyRowMapper<>(Organization.class));
return orgList;
}
答案 1 :(得分:0)
您可以在getJdbcOperations()
上致电NamedParameterTemplate
;然后使用获得的对象,您可以调用例如<T> List<T> query(String sql, RowMapper<T> rowMapper)
。
查看文档;因为使用上面提到的query
方法不使用准备好的语句。您可以使用(如Spring文档所述)<T> List<T> query(String sql, Object[] args, RowMapper<T> rowMapper)
将null
作为参数传递。
更新: 刚检查了Spring的源代码,你可以像Gergely建议的那样传递一个空的paramMap。
更新2: 有没有机会更新到更新的Spring版本?春天3.2.14例如有你想要的方法。
答案 2 :(得分:0)