今天在学习Hibernate插入数据时,一直报错:
Exception in thread "main"
org.hibernate.exception.GenericJDBCException: could not execute statement
Caused by: java.sql.SQLException: Incorrect string value: '\xE8\x8F\x9C\xE9\xB8\x9F...' for column 'school_name' at row 1
at com.mysql.jdbc.SQLError.createSQLExceptionSQLError.java:1073)
导致原因就是数据库和数据表的编码方式导致的。
解决方案:
尝试将数据库以及数据表的编码方式改为UTF-8
在Hibernate中建议在配置文件hibernate.cfg.xml中添加:
<!-- 设置编码方式为utf-8 -->
<property name="hibernate.connection.characterEncoding">utf-8</property>
<!-- 是否根据需要自动建表 -->
<property name="hbm2ddl.auto">update</property>
这样的话以后我们再自动建表时就会自动将排序规则设置为utf-8.
重新执行以下就好了。