java - Hibernate连接MYSQL失败提示时区错误该怎么解决?
黄舟
黄舟 2017-04-18 09:16:14
0
3
1113

平台:

  • WIN10 X64 专业版。

  • IDEA 2016.1.1.

  • MYSQL 5.7.12

  • hibernate 4.2.2

具体问题:

用hibernate连接MYSQL数据库的时候提示

ERROR: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

提示说服务器时区设置错误,我就用 MySQL Workbench 使用show variables like '%time_zone%'; 命令查看时区,显示如下图所示:

很奇怪。。。。系统时区不显示(难道内容是中文?所以显示不出来?)。

请问该怎么解决?

以下是

hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/xk_demo</property>
        <property name="connection.username">root</property>
        <property name="connection.password">5566</property>
        <property name="connection.pool_size">1</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="current_session_context_class">thread</property>
        <property name="show_sql">true</property>

        <mapping class="com.hib.db.XkMapEntity"/>
        <mapping resource="com/hib/db/XkMapEntity.hbm.xml"/>
        <!-- DB schema will be updated if needed -->
        <!-- <property name="hbm2ddl.auto">update</property> -->
    </session-factory>
</hibernate-configuration>

和自己写的测试demo:

import com.hib.db.XkMapEntity;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


public class Main {

    public static void main(String[] args) throws Exception
    {
        try{
        XkMapEntity xkMapEntity = new XkMapEntity();
        xkMapEntity.setParentId(0);
        xkMapEntity.setLevel(1);
        xkMapEntity.setParentUniqueId(1001);
        xkMapEntity.setMapUrl("f://map.jpg");
        xkMapEntity.setMapPosX(29);
        xkMapEntity.setMapPosY(34);
        xkMapEntity.setDescription("demo");

        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.getCurrentSession();
        session.beginTransaction();
        session.save(xkMapEntity);
        session.getTransaction().commit();
    }catch (Exception e){
            System.out.println(e.toString());
        }
    }
}
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(3)
左手右手慢动作

Ajouter connection.url après la valeur

?serverTimezone=UTC

Vous pouvez utiliser la même méthode si vous ne parvenez pas à vous connecter à IDEA DataBase.


Vous pouvez essayer d'exécuter la commande dans MySQL :
set global time_zone='+8:00'

伊谢尔伦

@junbaor Merci pour le conseil. Si vous ajoutez ?serverTimezone=UTC, il peut être écrit dans la base de données. Cependant, si c'est ?serverTimezone=UTC+8, l'erreur apparaîtra comme indiqué ci-dessous :
.

Enfin, IDEA indique toujours que la base de données ne peut pas être connectée, mais il peut écrire des données dans la base de données normalement, comme le montre la figure ci-dessous :

伊谢尔伦

Disponible en GMT+8.

?zeroDateTimeBehavior=convertToNull&amp;serverTimezone=GMT%2b8
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal