JAVA連接MySQL數(shù)據(jù)庫,在操作各項值均為為0(或者有0不正確的數(shù)據(jù)西剥?痹栖?)的timestamp等(日期為0000-00-00。瞭空。揪阿。疗我。)類型時不能正確處理,而是默認(rèn)拋出一個異常南捂,比如所見的:java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column XX to TIMESTAMP吴裤。
舉個實際的栗子,你的方法中要傳入來自頁面的日期參數(shù)值溺健,
按照正常的做法麦牺,比如日期值為2016-10-11,但是由于誤操作鞭缭,傳入了0000-00-00枕面,并沒有設(shè)置正確的數(shù)據(jù),那么這時默認(rèn)拋出java.sql.SQLException異常
(如果設(shè)定這一項 zero datetime behavior(英文字面意思為“0datetime反應(yīng)”)=
convert to null(英文字面意思為“轉(zhuǎn)化為null”)
缚去,把日期轉(zhuǎn)換為null代替異常處理):
即這類操作情況的處理策略潮秘,有3種
1.exception(不指定,則默認(rèn))---->默認(rèn)拋出異常易结,
2.convertToNull------->轉(zhuǎn)化為null
3.round------->替換成最近的日期即XXXX-01-01
這個在指定管理的數(shù)據(jù)庫連接屬性文件(jdbc.properties)jdbc的URL常用到:
比如這么寫:
jdbc.url=jdbc:mysql://localhost:3306/databaseName?zeroDateTimeBehavior=convertToNull