之前一直正常运行的代码,遇上Date类型转换错误。
环境:tomcat9.0.46/mysql 8.0.26/jdk1.8.0_301
组件:dbutils1.7 mysql-connector-java8.0.26
Manager类
public class Manager {
private static final int entityId=7;
private Integer managerId;
private Integer departmentId;
private String departmentName;
private String managerName;
private String loginName;
private String password;
private Boolean allowLogin;
private Date pwdUpdateTime;
//setter getter不贴了
}
manager表
+---------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+----------------+
| managerId | int | NO | PRI | NULL | auto_increment |
| managerName | varchar(30) | NO | UNI | NULL | |
| departmentId | int | YES | MUL | NULL | |
| loginName | varchar(20) | NO | | NULL | |
| password | varchar(64) | NO | | NULL | |
| allowLogin | tinyint(1) | NO | | 0 | |
| pwdUpdateTime | datetime | YES | | NULL | |
+---------------+-------------+------+-----+---------+----------------+
用户验证代码
public Manager getManagerByLoginNameAndPassword(String loginName, String password) throws SQLException {
QueryRunner qr=JdbcPool.getQueryRunner();
String sql="select managerId,managerName,loginName,allowLogin,pwdUpdateTime
from manager where loginName=? and password =sha2(?,256)";
return qr.query(sql, new BeanHandler<Manager>(Manager.class),loginName,password);
}
出错代码
java.sql.SQLException: Cannot set pwdUpdateTime: incompatible types, cannot convert java.time.LocalDateTime to java.util.Date Query: select managerId,managerName,loginName,allowLogin,pwdUpdateTime from manager where loginName=? and password =sha2(?,256) Parameters: [zhangsan , 123456]
at org.apache.commons.dbutils.AbstractQueryRunner.rethrow(AbstractQueryRunner.java:527)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:391)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:329)
。。。。。。。。。。
请各位指导,谢谢!