import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnectionManager { private static final String DRIVER = "com.mysql.jdbc.Driver"; //private static final String URL = "jdbc:mysql://localhost:3306/mydb" private static final String URL = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8"; private static final String USERNAME = "root"; private static final String PASSWORD = ""; public static Connection getConnection(){ try { Class.forName(DRIVER); Connection connection = DriverManager.getConnection(URL,USERNAME,PASSWORD); return connection; } catch (Exception e) { e.printStackTrace(); } return null; } }
該段代碼建立數據庫鏈接,注釋代碼在數據庫插入中文數據會顯示亂碼,在mydb后添加”?useUnicode=true&characterEncoding=utf-8”即可解決
添加的作用是:指定字符的編碼、解碼格式
例如:mysql數據庫用的是gbk編碼,而項目數據庫用的是utf-8編碼。這時候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下兩個方面:
1. 存數據時:
數據庫在存放項目數據的時候會先用UTF-8格式將數據解碼成字節碼,然后再將解碼后的字節碼重新使用GBK編碼存放到數據庫中。
2.取數據時:
在從數據庫中取數據的時候,數據庫會先將數據庫中的數據按GBK格式解碼成字節碼,然后再將解碼后的字節碼重新按UTF-8格式編碼數據,最后再將數據返回給客戶端。