Mybatis + Mysql 插入數據時中文亂碼問題


近日跟朋友一起建立一個項目,用的是spring+mybatis+mysql。

今天碰到一個mybatis向mysql中插入數據時,中文顯示為'???'的問題,拿出來說下。

 

對於數據庫操作中出現的中文亂碼,一般有兩種情況:

  • 數據庫本身設置
  • 連接數據庫時,jdbc的編碼設置

對於第一種情況,可以查看自身的mysql設置:

show variables like '%character%'

 

我的問題是第二種情況,需要在mybatis的配置文件中設置, 之前我的連接字段是:

    <!-- 1. 數據源 : DriverManagerDataSource -->
    <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/uct"/>
        <property name="username" value="root"/>
        <property name="password" value=""/>
    </bean>
    

修改后為:

    <!-- 1. 數據源 : DriverManagerDataSource -->
    <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/uct?useUnicode=true&amp;characterEncoding=utf-8"/>
        <property name="username" value="root"/>
        <property name="password" value=""/>
    </bean>
    

可以看到在連接的url后添加了useUnicode和characterEncoding的值,設定為utf-8.

這里有一點需要注意的是,在xml配置文件中,需要將'&'符號轉義,所以這里要寫成'&amp;'。

 

如果是在配置文件中,則無法轉義,應為: xxxx.jdbc.url=jdbc:mysql://127.0.0.1:8080:3306/uct?useUnicode=true&characterEncoding=UTF-8 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM