>  기사  >  Java  >  Hibernate가 데이터를 삽입할 때 중국어 왜곡 오류 문제를 해결하는 방법

Hibernate가 데이터를 삽입할 때 중국어 왜곡 오류 문제를 해결하는 방법

不言
不言앞으로
2018-10-11 15:06:282289검색

이 글의 내용은 Hibernate가 데이터를 삽입할 때 발생하는 중국어 오류 메시지에 대한 해결 방법에 대한 내용입니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

오류 설명

프로그램이 실행되고 데이터(중국어 포함)가 테이블에 삽입되고 오류가 보고됩니다. xE6xB2x88xE9x9BxAA...

하지만 새 데이터베이스를 만들고 중국어 데이터를 수동으로 삽입하면 데이터베이스를 수정하고 테이블을 인코딩할 때에도 같은 현상이 발생합니다. 게다가 이 상황은 MySQL5.7에서도 발생하며 해결할 수 없습니다.

Problem Solved

Hibernate 기본 구성 파일에서 데이터베이스 방언을 구성합니다. 일반적인 구성은 다음과 같습니다.

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

해당 소스 코드를 보면 알 수 있습니다. 다음과 같은 메소드가 있는지 확인하세요.

@Override  
public String getTableTypeString()
{  
  return "ENGINE=InnoDB";  
}

따라서 클래스를 사용자 정의하고 위의 메소드를 다음과 같이 다시 작성할 수 있습니다.

package com.taohan.util;
import org.hibernate.dialect.MySQL5InnoDBDialect;
public class HibernateEncodeAdapter MySQL5InnoDBDialect {
    @Override 
    public String getTableTypeString() {  
        return "ENGINE=InnoDB DEFAULT CHARSET=utf8";    
    }  
}

마지막으로 Hibernate 기본 구성 파일을 수정하고 데이터베이스 언어를 지정합니다.

<property name="dialect">com.taoahn.util.HibernateEncodeAdapter</property>

물론 Hibernate 메인 설정 파일에 데이터베이스 연결 경로를 설정한 후 다음과 같이 ?useUnicode=true&characterEncoding=UTF-8을 추가하는 것이 가장 좋습니다. :

<property name="hibernate.connection.url">jdbc:mysql:///test?useUnicode=true&characterEncoding=UTF-8</property>

위 내용은 Hibernate가 데이터를 삽입할 때 중국어 왜곡 오류 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제