“java.sql.SQLException: Value '0000-00-00'can not be represented asjava.sql.Timestamp”
的錯誤,這是因爲hibernate認爲這個不是一個有效的時間字串。
而有效的日期格式爲“ 0001-01-01 00:00:00.0 ”
所以, 我們在jdbc連接出改成
“jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull”
或者
“jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=round 0001-01-01 00:00:00.0”
就解決這個問題了。
public static java.sql.Date parseSqlDate(java.util.Date date) {
if (date != null)
return new java.sql.Date(date.getTime());
else
return null;
}
public static java.sql.Date parseSqlDate(String dateStr, String format) {
java.util.Date date = parseDate(dateStr, format);
return parseSqlDate(date);
}
public static String format(java.util.Date date, String format) {
String result = "";
try {
if (date != null) {
java.text.DateFormat df = new java.text.SimpleDateFormat(format);
result = df.format(date);
}
} catch (Exception e) {
}
return result;
}