hibernate mysql问题

时间:2012-11-14 13:14:44

标签: mysql hibernate

我希望从hibernate.cfg.xml执行mysql数据库的两件事;

  1. 要拥有utf8字符,以便它可以保存字符č,ć,ž,đ,š并将它们重新编码为,而不是?在挂毯申请中。

  2. 修复了com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException

  3.   

    连接关闭后不允许任何操作。连接是   由于潜在的异常/错误而隐式关闭:** BEGIN NESTED   EXCEPTION ** com.mysql.jdbc.exceptions.jdbc4.CommunicationsException   消息:从服务器成功接收的最后一个数据包   was48709毫秒前。最后一个数据包成功发送到   server是48709毫秒之前,比服务器长   配置的'wait_timeout'值。你应该考虑其中之一   在您使用之前到期和/或测试连接有效性   应用程序,增加客户端的服务器配置值   超时,或使用Connector / J连接属性   'autoReconnect = true'以避免此问题。

    我的hibermate.cfg.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
       "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    
    <hibernate-configuration>
      <session-factory>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/200</property>
        <property name="connection.username">root</property>
        <property name="connection.password">123</property>
        <property name="connection.autoReconnectForPools">true</property>
        <property name="connection.autoReconnect">true</property>
        <property name="hibernate.connection.useUnicode">true</property>
        <property name="hibernate.connection.characterEncoding">UTF-8</property>
        <property name="hibernate.connection.charSet">UTF-8</property>
        <property name="connection.pool_size">5</property>
        <property name="hbm2ddl.auto">update</property>
    
        <!-- Print SQL to stdout. -->
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <property name="use_sql_comments">true</property>
        <property name="generate_statistics">true</property>
    
        <property name="hibernate.transaction.flush_before_completion">false</property>
    
        <!-- Mapping files -->
        <mapping class="domaci.entities.Korisnik"/>
        <mapping class="domaci.entities.Magazin"/>
        <mapping class="domaci.entities.Rubrika"/>
        <mapping class="domaci.entities.Strana"/>
    
      </session-factory>
    </hibernate-configuration>
    

2 个答案:

答案 0 :(得分:1)

好吧,在你的cfg文件中,你需要将字符集设置为utf-8的č,ć,ž,đ,š字符:

default-character-set=utf8

或类似的东西,......,我不是真的喜欢这种休眠的东西,但我知道你需要这样做。 “的字符集= UTF-8

答案 1 :(得分:0)

还使用下一个命令增加服务器超时:

set @@global.wait_timeout=31536000 
set @@session.wait_timeout=31536000