使用jdbc連線資料庫中文亂碼問題
今天在學習jdbc時做了一個專案,專案主要實現的功能是通過jdbc連線資料庫,進行新增和查詢圖書館書籍。過程中遇到了新增中文到資料庫的亂碼問題,跟大家分享一下解決方案:
一.新增的時候是否有報錯(沒有的話直接繞道到二)
如果報錯的話應該是如圖所示:
這個錯誤是你資料庫的編碼問題引起的,可以通過bin>mysql.exe進入mysql後通過執行以下語句來檢視目前資料庫的編碼:
show variables
like
'%char%';
查詢結果如下:
可以看到我的編碼大多數都是gbk編碼,建議大家改成utf8編碼或者gbk編碼,具體原因可以自己百度以 下就知道了。修改方法如下(以下只說明操作最簡單的一種方法):
先開啟服務,將MySql服務關閉。再開啟mysql安裝的目錄檔案,在檔案中開啟bin,bin中找到MySQLInstanceConfig.exe檔案,開啟。開啟後介面如下:
這是重新配置mysql的檔案,點到預設編碼方式這一步,選擇最後一項,點開選擇列表選擇gbk編碼方式,然後完成接下來的步驟,重新配置完成。
配置完成後重新開啟mysql服務,執行mysql,輸入show variables
like
'%char%'(就是開頭的步驟),就可以看到與筆者一樣的編碼配置了;完成以後咱們就接著看第二步,第二步不做的話還是會出現亂碼的。
二.配置url
在你jdbc中的url配置後面加上這段程式碼:?useUnicode=true&characterEncoding=GB18030
比如我本來url的配置是這樣的:
String url = "jdbc:mysql://localhost:3306/db_database10";
加了程式碼後:
String url = "jdbc:mysql://localhost:3306/db_database10?useUnicode=true&characterEncoding=GB18030";
筆者解決了這兩個問題後完美執行:
結果:
想要此程式的原始碼的小夥伴的們可以在下面留下你們的郵箱,我會發給你們。