日期:2014-05-16  浏览次数:20753 次

Hibernate连接mysql中data too long for column问题

解决方法很是简单:

配置文件如下:

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
??????? <property name="connection.url">jdbc:mysql://localhost:3306/db_it_project?useUnicode=true&amp;characterEncoding=utf-8</property>
???????
??????? <property name="connection.username">root</property>
??????? <property name="connection.password">root</property>
??????? <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
??? ?
??? ?<property name="hibernate.hbm2ddl.auto">update</property>
??? ?<property name="show_sql">true</property>

?

在页面中向mysql5.0插入中文数据时提示失败,将sql语句复制到管理器中,数据库提示data too long for column "title",我改为一个汉字,还是提示同样的信息,换成英文再试一下,正常,应该是字符集除了问题,但是数据库在建立的时候就选择的DEFAULT_CHARSET,应该是字段的问题。
?将MySQL安装目录下的my.ini文件中的字符集配置如下(修改完之后,最好重启一下MySQL服务):
? ? [mysql]
? ? default-character-set=gbk
? ? [mysqld]
? ? default-character-set=gbk
或者在my.ini里找到
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
把其中的
STRICT_TRANS_TABLES,
去掉,然后重启mysql就ok了