向MySQL数据库插入日期时出错解决

当我们通过jdbcdao向mysql数据库插入日期时,如果程序会抛出下面的异常:

 com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: 'Sun Jul 28 00:00:00 CST 1996' for column 'birthday' at row 1

原因:我们插入的日期时java.util.Date类型的,而mysql数据库中的date是java.sql.Date类型的,所以会抛出异常

解决办法:将java.util.Date类型的日期转换为java.sql.Date类型,然后在插入数据库,就不会抛异常了,具体转换代码如下:

// util.date转换成sql.date

java.util.Date utilDate = new java.util.Date(); //获取当前时间

System.out.println(utilDate);

java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

System.out.println(sqlDate);


// sql.date转换成util.date

java.sql.Date sqlDate1 = new java.sql.Date(new java.util.Date().getTime());

System.out.println(sqlDate1);

java.util.Date utilDate1 = new java.util.Date(sqlDate1.getTime());

System.out.println(utilDate1);

你可能感兴趣的:(bug集锦)