使用Spring';s JdbcTempate
我正在使用spring的JDBCDAO支持进行数据库调用。我想执行本机查询(sql查询)来检索数据。JdbcTemplate中是否有用于本机查询的API?我使用了queryForObject,但如果没有数据,它会抛出异常,而如果找不到数据,我希望它返回null。有许多选项可用于执行本机sql。链接的文档包含大量采用本机sql的方法,通常还有某种回调处理程序,它们将完全实现您想要的功能。我想到的一个简单的例子是使用Spring';s JdbcTempate,spring,Spring,我正在使用spring的JDBCDAO支持进行数据库调用。我想执行本机查询(sql查询)来检索数据。JdbcTemplate中是否有用于本机查询的API?我使用了queryForObject,但如果没有数据,它会抛出异常,而如果找不到数据,我希望它返回null。有许多选项可用于执行本机sql。链接的文档包含大量采用本机sql的方法,通常还有某种回调处理程序,它们将完全实现您想要的功能。我想到的一个简单的例子是 SpringJDBCTemplate的queryForObject方法期望SQL只返回
SpringJDBCTemplate的queryForObject方法期望SQL只返回一行。如果没有返回行或返回的行数超过1行,则会抛出org.springframework.dao.incorrectresultsizedaataaccessexception。您必须使用try-catch块包装对queryForObject的调用,以处理IncorrectResultSizeDataAccessException,并在引发异常时返回null e、 g 我想知道你所说的“非本地”查询是什么意思。JdbcTemplate等都使用SQL。您只是在谈论如何处理空结果吗?
jdbcTemplate.query("select * from mytable where something > 3", new RowCallbackHandler() {
public void processRow(ResultSet rs) {
//this will be called for each row. DO NOT call next() on the ResultSet from in here...
}
});
try{
return jdbcTemplate.queryForObject(...);
}catch(IncorrectResultSizeDataAccessException e){
return null;
}