apache-DBUtis 工具类 + druid 完成对表的crud操作报错解决
链接: 报错具体情况
解决方法1
数据库字段类型使用timestamp,实体类对应使用Date(util包下的)
ActorDAO actorDAO = new ActorDAO();
List<Actor> actors = actorDAO.queryMulti("select * from actor where id >= ?", Actor.class, 1);
for (Actor actor : actors) {
System.out.println(actor);
}
这样解决,使用apache-DBUtis 工具类没有问题,但是土方法封装得不到全部数据,只能得到日期没有时间
public void testSelectToArrayList() {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet set = null;
String sql = "select * from actor where id = ?";
ArrayList<Actor> list = new ArrayList<>();
try {
connection = JDBCUtilsByDruid.getConnection();
System.out.println(connection.getClass());
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1,1);
set = preparedStatement.executeQuery();
while (set.next()) {
int id = set.getInt("id");
String name = set.getString("name");
String sex = set.getString("sex");
java.util.Date borndate = set.getDate("borndate");
String phone = set.getString("phone");
list.add(new Actor(id,name,sex,borndate,phone));
}
System.out.println(list);
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtilsByDruid.close(set, preparedStatement, connection);
}
}
成功解决
解决方法2
更换数据库版本,我使用的mysql8.0.24,问了大佬说使用mysql5.7可以解决,但我尝试了5.7还是不行
总结一下
土方法哪个都能用,但是会丢失掉时间,只能有日期
apache-DBUtis 工具类 使用timestamp可以,可以得到完整的,日期加时间