Data truncation: Data too long for column '****'

  今天寫代碼時發現中文存入mysql亂碼了。mysql

  個人數據持久化框架用的Hibernate。首先我確認JSP頁面傳入後臺的中文數據沒有亂碼,所以我確信是中文數據在存儲時出了問題。網上查閱資料,許多人說能夠在hibernate的配置文件中加入:sql

 <property name="connection.characterEncoding">utf-8</property>

 加了這句後仍是不行。繼續查資料....。而後,我忽然想到多是我建數據庫時沒有指定編碼,數據使用的的是mysql的默認編碼(而mysql的默認編碼是安裝時決定的) 。因而我將現有的數據庫刪除(小工程,刪除了沒關係),從新建庫,建庫時指定編碼數據庫

 create database  `db_photodisplay`  default character set utf8 collate utf8_general_ci;

建庫後,從新建表。運行工程,出現了新的錯誤:框架

  Data truncation: Data too long for column 'rolename' at row 1編碼

 繼續百度這個錯誤,百度上有人說,建表時加上engine=innodb default character set=utf8就行了。hibernate

因而我又刪除了表,在建表時加上engine=innodb default character set=utf8code

CREATE TABLE `role_info` (
 `id` bigint(20) NOT NULL,
  `rolename` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
)engine=innodb default character set=utf8

  從新運行工程,發現中文數據成功存入數據庫,沒有亂碼。xml

相關文章
相關標籤/搜索