首頁 >Java >Java基礎 >java插入mysql資料亂碼解決方法

java插入mysql資料亂碼解決方法

尚
原創
2019-11-30 11:15:262328瀏覽

java插入mysql資料亂碼解決方法

方式一:設定編碼統一

#1.設定eclipse環境編碼(推薦:java影片教學

java插入mysql資料亂碼解決方法

2.設定mysql環境編碼

mydb為需要修改的資料庫名稱

java插入mysql資料亂碼解決方法

方式二:建立資料庫時設定編碼

1. mysql建立database時設定編碼

create database mydb default character set utf8 collate utf8_general_ci;

2.建立表格時設定編碼

CREATE TABLE `type` ( 
`id` int(10) unsigned NOT NULL auto_increment, 
`flag_deleted` enum('Y','N') character set utf8 NOT NULL default 'N', 
`flag_type` int(5) NOT NULL default '0', 
`type_name` varchar(50) character set utf8 NOT NULL default '', 
PRIMARY KEY (`id`) 
)  DEFAULT CHARSET=utf8;

##方式三:連接資料庫時設定

在URL後面加上?useUnicode=true&characterEncoding=UTF-8

public class TestJdbc {
    private static String URL = "jdbc:mysql://localhost:3306/studentmanage?useUnicode=true&characterEncoding=UTF-8";
    useUnicode=true&characterEncoding=UTF-8
    private static String USER = "root";
    private static String PASSWORD = "root";

    public static void main(String[] args) {
        Connection con = null;

        String sql = "insert into user(uid,uname,password) values(?,?,?)";
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection(URL, USER, PASSWORD);
            con.close();
        } catch (Exception e) {
            e.printStackTrace();
        } 
    }

新增的作用是:指定字元的編碼、解碼格式。

例如:mysql資料庫用的是gbk編碼,而專案資料庫用的是utf-8編碼。這時候如果加入了useUnicode=true&characterEncoding=UTF-8 ,那麼作用有以下兩個面向:

儲存資料時:

資料庫在存放專案資料的時候會先用UTF-8格式將資料解碼成字節碼,然後再將解碼後的字節碼重新使用GBK編碼存放到資料庫。

取資料時:

在從資料庫中取資料的時候,資料庫會先將資料庫中的資料以GBK格式解碼,然後再解碼後的字節碼重新按UTF-8格式編碼數據,最後再將數據回傳給客戶端。

更多java知識請關注

java基礎教學欄。

以上是java插入mysql資料亂碼解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn