關(guān)于MySql鏈接url參數(shù)的設(shè)置
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUE
jdbc.username=root
jdbc.password=password
database.url=jdbc:mysql://database_server:3306/oauth?autoReconnect=true&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC
特別說明其中的jdbc.url配置:如果你已經(jīng)升級(jí)好了mysql-connector,其中的characterEncoding=utf8可以被自動(dòng)被識(shí)別為utf8mb4(當(dāng)然也兼容原來的utf8)阿蝶,而autoReconnect配置我強(qiáng)烈建議配上,我之前就是忽略了這個(gè)屬性曲伊,導(dǎo)致因?yàn)榫彺婢壒室蹲椋瑳]有讀取到DB最新配置阶祭,導(dǎo)致一直無法使用utf8mb4字符集,多么痛的領(lǐng)悟@掌妗预鬓!
沒有讓mysql驅(qū)動(dòng)開啟批量執(zhí)行sql的開關(guān)。
怎么開啟呢赊颠?在拼裝mysql鏈接的url時(shí)格二,為其加上allowMultiQueries參數(shù),設(shè)置為true巨税,如下:
jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
mysql JDBC URL格式如下:
jdbc:mysql://[host:port],[host:port].../[database][?參數(shù)名1][=參數(shù)值1][&參數(shù)名2][=參數(shù)值2]...
常用的幾個(gè)較為重要的參數(shù):
參數(shù)名稱 參數(shù)說明 缺省值 最低版本要求
user 數(shù)據(jù)庫用戶名(用于連接數(shù)據(jù)庫) 所有版本
passWord 用戶密碼(用于連接數(shù)據(jù)庫) 所有版本
useUnicode 是否使用Unicode字符集蟋定,如果參數(shù)characterEncoding設(shè)置為gb2312或gbk,本參數(shù)值必須設(shè)置為true false 1.1g
characterEncoding 當(dāng)useUnicode設(shè)置為true時(shí)草添,指定字符編碼驶兜。比如可設(shè)置為gb2312或gbk false 1.1g
autoReconnect 當(dāng)數(shù)據(jù)庫連接異常中斷時(shí),是否自動(dòng)重新連接远寸? false 1.1
autoReconnectForPools 是否使用針對(duì)數(shù)據(jù)庫連接池的重連策略 false 3.1.3
failOverReadOnly 自動(dòng)重連成功后抄淑,連接是否設(shè)置為只讀? true 3.0.12
maxReconnects autoReconnect設(shè)置為true時(shí)驰后,重試連接的次數(shù) 3 1.1
initialTimeout autoReconnect設(shè)置為true時(shí)肆资,兩次重連之間的時(shí)間間隔,單位:秒 2 1.1
connectTimeout 和數(shù)據(jù)庫服務(wù)器建立socket連接時(shí)的超時(shí)灶芝,單位:毫秒郑原。 0表示永不超時(shí),適用于JDK 1.4及更高版本 0 3.0.1
socketTimeout socket操作(讀寫)超時(shí)夜涕,單位:毫秒犯犁。 0表示永不超時(shí) 0 3.0.1
對(duì)應(yīng)中文環(huán)境,通常mysql連接URL可以設(shè)置為:
復(fù)制代碼代碼如下:
在使用數(shù)據(jù)庫連接池的情況下女器,最好設(shè)置如下兩個(gè)參數(shù):
復(fù)制代碼代碼如下:
autoReconnect=true&failOverReadOnly=false
需要注意的是酸役,在xml配置文件中,url中的&符號(hào)需要轉(zhuǎn)義成&驾胆。比如在tomcat的server.xml中配置數(shù)據(jù)庫連接池時(shí)涣澡,mysql jdbc url樣例如下:
復(fù)制代碼代碼如下:
http://www.jb51.net/article/47764.htm
jdbc:mysql://127.0.0.1:3306/demo_ds?useServerPrepStmts=true&cachePrepStmts=true
設(shè)置參數(shù)useServerPrepStmts=true,這個(gè)參數(shù)的作用是讓MySQL服務(wù)進(jìn)行prepare丧诺。沒有這個(gè)參數(shù)就是讓JDBC進(jìn)行prepare入桂,MySQL完全感知不到,是沒有什么意義的驳阎。
cachePrepStmts=true這個(gè)參數(shù)的意思是告訴JDBC緩存需要prepare的SQL