java.sql.SQLException: Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89'

错误代码:

SEVERE: Servlet.service() for servlet [springMVC] in context with path [/mavenSpringHibernateBase] 
threw exception [Request processing failed; nested exception is org.hibernate.exception.GenericJDBCException: 
Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'user_name' at row 1] with root cause
java.sql.SQLException: Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'user_name' at row 1

解决办法

出现这个错误的原因是,我的数据库字段是latin1导致的,我的数据库是通过heibernate自动创建的,你把latin1改为utf8就可以用了


错误图片 .png

为了下次使用hibernate创建数据库不再默认使用latin1的字符集,我们需要修改dialect

import org.hibernate.dialect.MySQL5InnoDBDialect;
/**
 * 因为hibernate自动创建的表,不是utf-8的,
 * 采用如下方式,让他创建的表是utf-8的
 * @author Gao

 */
public class MySQL5DialectUTF8 extends MySQL5InnoDBDialect{
    @Override  
    public String getTableTypeString() {  
        return " ENGINE=InnoDB DEFAULT CHARSET=utf8";    
    }  
}

config.properties

hibernate.dialect=com.gao.utils.MySQL5DialectUTF8
jdbcUrl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,778评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,839评论 0 11
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,513评论 0 13
  • 网文界的跟风,模仿已经在前面说过了,今日不提。 现在说说网文工作室。想必很多人都知道,不知道也听说过。 最早的工作...
    寒蝉0阅读 4,396评论 2 9
  • 因为工作原因走访了三户居民,在家的都是老人,通过了解,不禁感叹养老是个很严峻的社会问题。PS:坐标深圳关外。 先说...
    地心阅读 1,193评论 0 49