mysql數據庫URL解析


以舉例的形式對常見配置進行解析。

比如:

datasource.url = 
  jdbc:mysql://localhost:3306/emp?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
localhost:數據庫所在服務器的IP(localhost本地) 3306:數據庫的端口號 emp:數據庫的名字,databasename,mysql某個用戶下的某個數據庫名 useUnicode:是否使用Unicode字符集
characterEncoding:當useUnicode設置為true時,指定字符編碼。
說明一:

mysql數據庫用的是gbk編碼,而你項目的mysql數據庫需要的是utf-8編碼,所以在url后面添加?useUnicode=true&characterEncoding=utf-8",表示
(1)數據庫在存放項目數據的時候會先用UTF-8格式將數據解碼成字節碼,然后再將解碼后的字節碼重新使用GBK編碼存放到數據庫中;
(2)從數據庫中取數據的時候,數據庫會先將數據庫中的數據按GBK格式解碼成字節碼,然后再將解碼后的字節碼重新按UTF-8格式編碼數據,最后再將數據返回給客戶端。
說明二:

JAVA連接MySQL數據庫,在操作各項值均為0(或者有0不正確的數據?)的timestamp等(日期為0000-00-00。。。。)類型時不能正確處理,而是默認拋出一個異常,
比如所見的:java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column XX to TIMESTAMP。

舉個實際的栗子,你的方法中要傳入來自頁面的日期參數值,

按照正常的做法,比如日期值為2016-10-11,但是由於誤操作,傳入了0000-00-00,並沒有設置正確的數據,那么這時默認拋出java.sql.SQLException異常。

即這類操作情況的處理策略,有3種
1.exception(不指定,則默認)---->默認拋出異常,
2.convertToNull------->將日期轉換成NULL值
3.round------->替換成最近的日期即XXXX-01-01 比如:zeroDateTimeBehavior=round 0001-01-01 00:00:00.0

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM