首先明確一點: 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)); //
在這之前設置的..很可能就被覆蓋了