Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Spring';s JdbcTempate_Spring - Fatal编程技术网

使用Spring';s JdbcTempate

使用Spring';s JdbcTempate,spring,Spring,我正在使用spring的JDBCDAO支持进行数据库调用。我想执行本机查询(sql查询)来检索数据。JdbcTemplate中是否有用于本机查询的API?我使用了queryForObject,但如果没有数据,它会抛出异常,而如果找不到数据,我希望它返回null。有许多选项可用于执行本机sql。链接的文档包含大量采用本机sql的方法,通常还有某种回调处理程序,它们将完全实现您想要的功能。我想到的一个简单的例子是 SpringJDBCTemplate的queryForObject方法期望SQL只返回

我正在使用spring的JDBCDAO支持进行数据库调用。我想执行本机查询(sql查询)来检索数据。JdbcTemplate中是否有用于本机查询的API?我使用了queryForObject,但如果没有数据,它会抛出异常,而如果找不到数据,我希望它返回null。

有许多选项可用于执行本机sql。链接的文档包含大量采用本机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;
}