java.sql.Date的問題

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; 
  }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章