因為在本地測試用本地的資料庫都沒事情,插資料度資料都一點問題都沒問題,就考慮到了應該是jdbc連線的時候的url編碼問題,在修改之前,我們的連線是這樣的:
jdbc:mysql:
.cdb
.myqcloud
.com:11462/sh_books
網上搜了一下,說要在連線mysql資料庫的時候一般都會在url後面新增useunicode=true&characterencoding=utf-8,這樣是修改後的
jdbc:mysql:
.cdb
.myqcloud
.com:11462/sh_books?useunicode=true&characterencoding=utf-8
執行了下,報錯了報錯了!! 居然報錯了!錯誤提示的一部分是這樣的:
對實體 「characterencoding」 的引用必須以 『;』 分隔符結尾。搜了一下,知道為什麼了,在xml的配置檔案中 ;要用
&
代替,這是html中常用的字元實體,改完後呢就是這個樣子啦:
jdbc:mysql:
.cdb
.myqcloud
.com:11462/sh_books?useunicode=true&;characterencoding=utf-8
問題完美解決,但是為什麼要這樣呢? 搜了一下相關的資料
我們在,但是問什麼要新增呢?
我們新增這個的新增的作用是:指定字元的編碼、解碼格式。
例如:mysql資料庫用的是gbk編碼,而專案資料庫用的是utf-8編碼。這時候如果新增了useunicode=true&characterencoding=utf-8 ,那麼作用有如下兩個方面:
存資料時:
資料庫在存放專案資料的時候會先用utf-8格式將資料解碼成位元組碼,然後再將解碼後的位元組碼重新使用gbk編碼存放到資料庫中。
取資料時:
在從資料庫中取資料的時候,資料庫會先將資料庫中的資料按gbk格式解碼成位元組碼,然後再將解碼後的位元組碼重新按utf-8格式編碼資料,最後再將資料返回給客戶端。
注意:在xml配置檔案中配置資料庫url時,要使用&的轉義字元也就是&
例如:name="url" value="jdbc:mysql://localhost:3306/email?useunicode=true&characterencoding=utf-8" />
顯示結果
說明entity name
entity number
顯示乙個空格
<
小於<
<
>
大於>
>
&&符號
&
&
「雙引號
"
"
顯示結果
說明entity name
entity number?版權
©
?註冊商標
®
®
×乘號
×
×
÷除號
÷
÷
JDBC連線MySQL的URL編碼問題
最近這幾天學習ssm框架,簡單說一下jdbc連線mysql的url編碼問題。網上說了一下,說要在連線mysql資料庫的時候一般都要在url後面新增useunicode true characterencoding utf 8,而且對實體 characterencoding 的引用必須以 分隔符結尾,...
JDBC常用連線URL
1 oracle8 8i 9i資料庫 thin模式 class.forname oracle.jdbc.driver.oracledriver newinstance string url jdbc oracle thin localhost 1521 orcl orcl為資料庫的sid strin...
JDBC常用連線URL
1 oracle8 8i 9i資料庫 thin模式 class.forname oracle.jdbc.driver.oracledriver newinstance string url jdbc oracle thin localhost 1521 orcl orcl為資料庫的sid strin...