你這種情況不只是在Hibernate中會碰到,就是在我們現在主流的php中同樣會碰到,如果你的數據庫編碼與頁面編碼不一樣,就可能出現中文亂碼的問題。
今天在用Hibernate向MySQL中插入數據時出現了亂碼的問題,具體表現時我在插入前用utf-8打印出來中文時OK的,然后用MySQL Workbench設置成uft-8來顯示從MySQL中查詢出來的數據也是正確的,但是當我把代碼中的數據插入數據庫之后再進行查詢時查詢出來的就是亂碼了,不知道怎么設置,因為兩頭utf-8都沒問題,那問題肯定時出在了中間環節,也就是connect的時候,網上到處找結果終于找到了.
我們只需要在hibernate.property或者時hibernate.cfg.xml(取決于你是怎么連接數據庫的)文件中進行一下設置就OK了。
原本我的連接語句是這么寫的,代碼如下:
- <property name="connection.url">
- jdbc:mysql://localhost:3306/tablename
- </property>
然后我修改成了,代碼如下:
- <property name="connection.url">
- jdbc:mysql://localhost:3306/tablename?useUnicode=true&characterEncoding=utf8
- </property>
發現還是不行,原來是要改成這樣,代碼如下:
- <property name="connection.url">
- <![CDATA[
- jdbc:mysql://localhost:3306/tablename?useUnicode=true&characterEncoding=utf8 --Vevb.com
- ]]>
- </property>
|
新聞熱點
疑難解答