• ClassCastException: java.util.Date cannot be cast to java.sql.Date


    解决办法

        /**
         * 单个方法,作用,根据输入的day:yyyy-mm-dd格式的字符日期,将数据库中的该天所有数据更新为0
         * 0表示假期
         * @param day
         * @throws SQLException 
         * @throws ParseException 
         */
        public void UpdateDayTypeByLeaseDay(String day) throws SQLException, ParseException{
            //UPDATE NYC_TRIP_SUM_BYHOUR SET daytype='0' where leaseday='2016-12-31'
            String sql="UPDATE NYC_TRIP_SUM_BYHOUR SET daytype='0' where leaseday=?";
            //建立连接
            Connection conn=daoUtil.getConnection();
            PreparedStatement preStmt=conn.prepareStatement(sql);
    
    //      SimpleDateFormat sdfDay=new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟
    
            //先将字符日期转为util日期
            SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd");
            Date dayDateUtil=df.parse(day);
            System.out.println("转换成Util日期"+dayDateUtil);
            //由于util在sql中不符,再转为sql日期
            java.sql.Date dayDateSql = new java.sql.Date(dayDateUtil.getTime());
            System.out.println("转换成sql日期"+dayDateSql);
    
            //将日期参数传入
            preStmt.setDate(1, dayDateSql);
            preStmt.executeQuery();
            //关闭连接资源
            preStmt.close();
            conn.close();
    
        }

    关键在于中间的几行:

    //先将字符日期转为util日期
    SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd");
    Date dayDateUtil=df.parse(day);
    System.out.println("转换成Util日期"+dayDateUtil);
    
    //由于util在sql中不符,再转为sql日期
    java.sql.Date dayDateSql = new java.sql.Date(dayDateUtil.getTime());
    System.out.println("转换成sql日期"+dayDateSql);
  • 相关阅读:
    【题解】警位安排( 树形 DP)
    【题解】任务分配
    Leo 搭积木
    受牛仰慕的牛
    zy 送画
    [NOIP2010] 乌龟棋
    [WikiOi 1214] 线段覆盖
    【拓扑习题】课程安排问题
    [WikiOI "天梯"1281] Xn数列
    [百度之星2014资格赛] Disk Schedule 报告
  • 原文地址:https://www.cnblogs.com/lx06/p/15739812.html
Copyright © 2020-2023  润新知