> Java > java지도 시간 > 본문

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

不言
풀어 주다: 2018-10-11 15:06:27
앞으로
2288명이 탐색했습니다.

이 글의 내용은 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!