1. 程式人生 > >JAVA與mysql之間的編碼問題

JAVA與mysql之間的編碼問題

環境 fix 編碼問題 itl nic oca url 遇到 問題

之前一直沒有自己動手配置過數據庫所以也一直沒有發現這個問題,百度了一下發現網絡上並沒有相應的解決方案,於是我開始自己摸索的解決這個問題。

問題狀況大致是這樣的,在數據庫中存在一個表,當我在java代碼中刪除表中的元祖的時候沒有辦法根據中文的屬性值刪除對應元祖。可能表述的不是很準確,接下來我配合圖片進行說明吧。

工具/原料

  • mysql
  • eclipse
  • navicat

方法/步驟

  1. 一般出現在這種問題都是因為數據庫和編譯環境使用的編碼不一樣的造成的,為了方便說明我舉個學生信息表為例吧。

    比如現在存在一個叫小明(char型)的學生,對應學號是1(inr型),按照學號刪除學號為1的小明執行結果沒有任何問題,按照名字刪除名字叫小明的學生就無法刪除。如果你遇到的問題和我一樣那就接著往下看吧,如果不是那可能下面的內容不能幫助到你。

  2. 首先查一下當前數據庫的文字編碼

    SHOW VARIABLES LIKE ‘character_set_%‘

    技術分享
  3. 我用的是mysql數據庫,編碼如下: 技術分享
  4. 解決方法很簡單在數據庫連接語句後面加上一句?useUnicode=true&characterEncoding=GBK就行了。

    String url = "jdbc:mysql://localhost:3306/db_database?useUnicode=true&characterEncoding=GBK";String user = "root"; String passWord = "root";

JAVA與mysql之間的編碼問題