public User loadUser(User user) { String sql = "select * from user where userID = '" + user.getUserId() + "'and password = '" + user.getPassword() + "'"; System.out.println("登录的sql:"+ sql); User user1 = null; try { user1 = queryRunner.query(connection, sql, new BeanHandler<>(User.class)); } catch (SQLException e) { e.printStackTrace(); } return user1; }输入用户ID为,密码为123456,为什么显示登录的sql:select * from user where userID = 'null'and password = '123456'
时间: 2024-03-10 09:45:16 浏览: 13
这可能是因为您传入的`User`对象的`userId`属性值为`null`,因此`sql`语句中的`userID`字段被解析为字符串`'null'`。请检查您传入的`User`对象的`userId`属性是否为`null`或空字符串。
如果`userId`确实为空,可以在`loadUser`方法中添加对`userId`属性的判断,如果`userId`为空,则返回一个空值或错误提示,例如:
```
public User loadUser(User user) {
if(user.getUserId() == null || user.getUserId().trim().isEmpty()) {
System.out.println("userId为空");
return null; // 或者返回一个错误提示
}
String sql = "select * from user where userID = '" + user.getUserId() + "'and password = '" + user.getPassword() + "'";
System.out.println("登录的sql:"+ sql);
User user1 = null;
try {
user1 = queryRunner.query(connection, sql, new BeanHandler<>(User.class));
} catch (SQLException e) {
e.printStackTrace();
}
return user1;
}
```
这样,如果传入的`User`对象的`userId`属性为空,程序会输出错误提示并返回一个空值或错误提示,避免了查询时出现错误。