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"/> <propertyname="url" value="jdbc:mysql://127.0.0.1:3306/uct?useUnicode=true&characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value=""/> </bean>
可以看到在連線的url後添加了useUnicode和characterEncoding的值,設定為utf-8.
這裡有一點需要注意的是,在xml配置檔案中,需要將'&'符號轉義,所以這裡要寫成'&'。
如果是在配置檔案中,則無法轉義,應為: 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=