首先明确一点: java和数据库的时间Date类型是不一样的
mysql的Date : import java.sql.Date
java的Date : import java.util.Date
从java中向数据库中存入一个Date类型时,我们需要将java的Date转换为数据库的Date才能插入,不然会报错
我们需要创建一个Date(import java.util.Date) d ,这是一个javaDate
然后调用下面的转换函数, DateUtil,dtot(d) 此时便成为一个数据库的Date
这是写的一个datetime与date转换的一个类
public class DateUtil {
//将Java date转化为 数据库Date public static java.sql.Timestamp dtot(java.util.Date d) { if (null == d) return null; return new java.sql.Timestamp(d.getTime()); }
//将数据库Date 转化为java date public static java.util.Date ttod(java.sql.Timestamp t) { if (null == t) return null; return new java.util.Date(t.getTime()); } }
怎样使用
一般我们将java.util.data插入数据库的时候
假设 有个类clz 为 {
String name;
int age;
Date d;
setter(), getter()方法....
}
在jdbc中
给你一个clz的类 test 让你插入到sql中
sql = "insert into test_table (name, age, Date) values(?,?,?);
需要
setObject(1, test.getName());
setObject(2, test.getAge());
setObject(3, DateUtil.dtot(test.getDate)); //
在这之前设置的..很可能就被覆盖了