mysql反向生成hbm.xml后,由hibernate向sql写数据中文出现乱码问题

本文介绍如何在Hibernate中配置UTF-8编码,确保正确处理中文等Unicode字符。通过在hibernate.cfg.xml文件中设置connection.useUnicode及connection.characterEncoding属性,并提供一个具体的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在utf-8编码环境下,在hibernate.cfg.xml中的session-factory内添加如下代码设置:

<span style="font-size:18px;"><property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">UTF-8</property></span>
或者指定在连接mysql数据库时需要使用的字符集
<property name="hibernate.connection.url">
    <![CDATA[
        jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
    ]]>
</property>

该设置反向生成是没有的,需要手动添加,以配置一个简单的hbm.xml为例,配置文件代码为:

<span style="font-size:18px;"><?xml version='1.0' encoding='UTF-8'?>

<hibernate-configuration>

	<session-factory>
		<property name="dialect">
			org.hibernate.dialect.MySQLDialect
		</property>
		<property name="connection.url">
			jdbc:mysql://localhost:3306/test
		</property>
		<property name="connection.username">root</property>
		<property name="connection.password">master</property>
		<property name="connection.driver_class">
			com.mysql.jdbc.Driver
		</property>
		<property name="myeclipse.connection.profile">test</property>

		<property name="connection.useUnicode">true</property>
   		<property name="connection.characterEncoding">UTF-8</property>
    
		<property name="show_sql">true</property>
		<property name="format_sql">true</property>
		<property name="hbm2ddl.auto">create</property>

		<mapping resource="com/robin/po/Students.hbm.xml" />
	</session-factory>

</hibernate-configuration></span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值