mysql - 如果 jdbc.queryForObject 不返回行,如何处理

标签 mysql sql jdbc spring-jdbc jdbctemplate

我想知道如何在我的案例中正确使用 jdbc。

saveLinkHistory 列在 mysql 中是一个 bit(1) 类型。

public boolean getIsSavedLinkHistory(String name) {
        String sql = "select saveLinkHistory from users where name = ?";
        Boolean isTracked = jdbcTemplateObject.queryForObject(sql, new Object[] { name }, Boolean.class);
        return isTracked;
}

查询运行良好,直到我收到错误 Incorrect result size: expected 1, actual 0 因为有时 name 不存在,queryForObject 方法期望我总是得到 1 行作为结果。

我该如何处理这种情况,只是抛出一个“名称”不存在的异常? 顺便说一下,Boolean 在这里可以吗?因为我以前没有看到这样的代码。

最佳答案

试试这个:

return DataAccessUtils.singleResult(jdbcTemplate.query(sql, new SingleColumnRowMapper<Boolean>(), param1, param2));

关于mysql - 如果 jdbc.queryForObject 不返回行,如何处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43066254/

相关文章:

php - 帮助查询

c# - MySQL 查询中缺少关键错误

java - DAO方法错误: Parameter index out of range

elasticsearch - 如何获得多个记录?

php - MySQL 日期间隔不起作用

java - 如何修复 SQL 错误、终止连接和 SQLState : 57P01

php - 用于从对话和消息表连接中选择最新消息的 MySql 查询

mysql - 在不破坏表中数据的情况下更改列的数据类型

jsp - 如何纠正jsp中的数据库连接错误?

mysql - 从另一个表复制时更新行的时间戳