java - Jdbc 返回空列表但 SQL 查询成功获取数据 [Spring]
问题描述
我正在尝试执行此查询:
@Override
public UserInfo get(Long id) {
String sql = "SELECT * FROM users WHERE id = ? ";
List<UserInfo> list = jdbcTemplate.query(sql,new UserInfoMapper(),id);
return list.get(0);
}
但是 jdbc 返回空列表,并且在返回行出现异常。但是如果尝试直接通过控制台执行,它会返回: Query, Answer
使用 id 1 执行查询并返回正确的 anwser;但是在方法中它返回了这个
我找不到任何相同的问题,所以这可能是我对某些事情的疏忽。但我看不到任何可能导致这种情况的问题。提前致谢;
更新 1 将代码更改为
@Override
public UserInfo get(Long id) {
String sql = "SELECT * FROM users WHERE id = ? ";
List<UserInfo> list = jdbcTemplate.query(sql, new Object[] {id},new UserInfoMapper());
return list.get(0);
}
结果相同:结果 更新 2
@Override
public UserInfo mapRow(ResultSet resultSet, int i) throws SQLException {
UserInfo info = new UserInfo();
info.setId(resultSet.getLong("id"));
info.setFirstname(resultSet.getString("firstname"));
info.setMiddlename(resultSet.getString("middlename"));
info.setLastname(resultSet.getString("lastname"));
info.setUsername(resultSet.getString("username"));
info.setPassword(resultSet.getString("password"));
info.setEmail(resultSet.getString("email"));
info.setMobilephone(resultSet.getString("mobilephone"));
info.setPosition(resultSet.getString("position"));
return info;
}
public class UserInfo {
private Long id;
private String firstname;
private String middlename;
private String lastname;
private String username;
private String password;
private String email;
private String mobilephone;
private String position;
public UserInfo() {
}
}
每个字段的 getter 和 setter 都在那里,但我认为没有必要显示它们。
解决方案
推荐阅读
- xml - 为什么 jmeter 中的 RESPONSE 将发布数据请求显示为空
- javascript - 如何将多个对象属性绑定到 ngStyle?
- apache-spark - 通过多个键对 Spark 类型安全的聚合进行分组
- android - 如何从 android 应用程序生成类似事件的 Ctrl+v(Paste)?
- version-control - EM 破折号(“-”)在 WinCvs 中更新时被字符替换
- dialogflow-es - 如何使用 Dialogflow 电话网关并在 nodejs 等后端平台中处理它
- javascript - nodejs 中的 Promise 和 async/await
- c++ - volatile sig_atomic_t 的内存安全
- qt - 如何使用Win7设置QTcpServer单独监听端口
- ruby-on-rails - gem 'rails-settings-cached' 是否允许多个设置模型?