1. 程式人生 > >Mybatis + Mysql 插入資料時中文亂碼問題

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

相關推薦

Mybatis + Mysql 插入資料中文亂碼問題

近日跟朋友一起建立一個專案,用的是spring+mybatis+mysql。今天碰到一個mybatis向mysql中插入資料時,中文顯示為'???'的問題,拿出來說下。對於資料庫操作中出現的中文亂碼,一般有兩種情況:資料庫本身設定連線資料庫時,jdbc的編碼設定對於第一種情況

mybatis+mysql插入資料出現中文亂碼

剛接觸mybatis,使用mybatis插入時出現了中文亂碼的情況,最後問題關鍵在建立表的時候沒有設定編碼方式 剛開始是這樣寫的: create table companydetail( i

MySQL 在控制檯插入資料,中文亂碼問題的解決

當向 MySQL 資料庫插入一條帶有中文的資料形如  insert into employee values(null,'張三','female','1995-10-08','2015-11-12','Sales',2000,'是個好員工!');  出現亂碼時,可以使用語句

Linux下Tomcat向MySQL插入數據中文亂碼解決辦法

中文亂碼解決辦法Linux下Tomcat向MySQL插入數據中文亂碼解決辦法 一、問題 在windows上面使用eclipse開發的項目在windows上面運行一切正常,部署到騰訊雲時出現向MySQL數據庫中插入數據是中文亂碼 二、解決辦法 1、嘗試一直接在linux上面使用insert語句插入中文,正常2、

解決mysql插入資料出現Incorrect string value: '\xF0\x9F...' for column 'name' at row 1的異常

這個問題,原因是UTF-8編碼有可能是兩個、三個、四個位元組。Emoji表情或者某些特殊字元是4個位元組,而MySQL的utf8編碼最多3個位元組,所以資料插不進去。 我的解決方案是這樣的 1.在mysql的安裝目錄下找到my.ini,作如下修改:   [mysqld] character

MySQL插入資料,如果記錄不存在則insert,如果存在則update

MySQL 當記錄不存在時insert,當記錄存在時更新 網上基本有三種解決方法。 第一種: 示例一:insert多條記錄 假設有一個主鍵為 client_id 的 clients 表,可以使用下面的語句: INSERT INTO clients (clien

JSP頁面提交資料中文亂碼問題的解決

JSP頁面提交含中文的資料時,如果是POST方式提交資料,在request.getParameter("valueName");前面加上 request.setCharacterEncoding("UTF-8"); 便可解決中文資料裡面的問題。如果是GET方式或位址列方式提交

mybatis獲取插入資料自動生成的主鍵id

mapper檔案: void insert(Map<String, Object> params); mybatis的xml如下: <insert id="insert" parameterType="java.util.Map" useGen

關於sql server 在儲存過程中建立臨時表,並往臨時表中插入資料出現亂碼的問題

  此前在客戶一個繁體系統的sql  server中執行儲存過程的時候出現亂碼,經查發現建立臨時表後,往臨時表中插入資料時得到的資料是亂碼的,所以檢視建立表的sql指令碼,經查需要將變數型別設定為  

php 使用webservice從伺服器獲取資料中文亂碼

本小白由於公司erp需求,讓我來搞webservice這塊。 伺服器端為本公司的伺服器,客戶端為自己的主機。 從伺服器的sql資料庫獲取了對於的資料後,從客戶端獲取了。 結果發現中文出現亂碼。 查看了多個地方引數。頁面沒問題,兩邊的引數設定都沒問題的。 webservic

jsp中向資料庫中插入資料中文亂碼問題

首先附上最剛開始的程式碼,功能是向資料庫中插入資料,資料庫中的屬性如下: <% String action = request.getParameter("action"); //表單中提交過來的資料。 if(action != null &&

C#向MySql插入資料的時候中文變為亂碼

基本上是編碼問題,找了很久後來發現直接在資料庫的連線字串上寫:charset=utf8; 就可以解決了。 如:  charset=utf8;******;User Id=******;password=******;Database=******;

mybatis插入資料返回主鍵(mysql資料庫)

第一種方式使用useGeneratedKeys屬性 User類 public class User { private i

ssm框架插入mysql數據庫中文亂碼問題解決

mar word ref def http reat pro xml文件 framework 1. 檢查web.xml <!-- 編碼過濾器 --> <filter> <filter-name>

mybatis 在oracle資料庫中插入資料獲取自增ID sequence序列

在oracle中sequence就是序號,每次取的時候它會自動增加。sequence與表沒有關係。 Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE許可權。 建立語句如下: CREATE SEQUEN

mybatis插入資料返回自增的主鍵

mybatis有一個方便的功能就是在插入資料後返回插入的記錄主鍵,設定非常方便,一共有兩種方式,推薦使用第一種 第一種: <insert id="createBook" parameterType="book" useGeneratedKeys="true" keyProperty="

URL中文引數往資料庫中存資料發生亂碼

解決方法:在tomcat_home\conf\server.xml 中的Connector元素中設定URIEncoding屬性為合適的字元編碼 <Connector port="8080" protocol="HTTP/1.1" connectionTime

Spring Boot JPA MySQL 入庫MySQL資料庫中文亂碼的解決辦法

問題表述:        上篇部落格中抒寫了Spring Data Jpa實體類自動建立資料庫表失敗解決即原因(踩過的坑),接著在操作JPA插入資料進資料庫時,發現數據庫的值為中文亂碼(??),需要注意一下的配置點,所以記錄一下,希望能幫到大家(#^.^#

java資料傳輸中文亂碼

在傳送mq時,傳入資料正常,但是消費者接收的資料是亂碼的,可以在傳送的時候對資料進行編碼,然後消費者在進行解碼即可 java中編碼:URLEncoder.encode(URLEncoder.encode("傳遞的中文","utf-8")); java中解碼碼:URLDecoder.decode(

Mybatis 進行批量插入資料,處理已經存在的資料

假設存在一張 學生表:{姓名,年齡,年級} 假設已經存在了小明,小王等學生 這時候將姓名設定為唯一的主鍵或者索引 insert into 學生表 (姓名,年齡,年級) values <foreach collection="list" item="item" separator=