apache-DBUtis 工具类 + druid 完成对表的crud操作报错解决

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可以,可以得到完整的,日期加时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值