• 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);
  • 相关阅读:
    Core Foundation框架(2)命名规范,内省
    Core Foundation框架(1)基础介绍
    Swift 数组,字典
    Swift 操作符
    Swift 可选值
    Swift 元组
    Swift 变量声明
    iOS开发_UI_AutoLayout
    iOS开发_Objective-C_字符串操作
    iOS开发_Objective-C_监听搜索时用户输入的拼音
  • 原文地址:https://www.cnblogs.com/lx06/p/15739812.html
Copyright © 2020-2023  润新知