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

平台:

  • 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());
        }
    }
}
黄舟
黄舟

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

全員に返信(3)
左手右手慢动作

connection.url 値の後に

を追加します リーリー

IDEA Database に接続できない場合も同様の方法でご利用いただけます。


質問者は mysql で次のコマンドを実行してみることができます:
set global time_zone='+8:00'

いいねを押す +0
伊谢尔伦

@junbaor アドバイスありがとうございます。 ?serverTimezone=UTC を追加すると、データベースに書き込むことができます。 ?serverTimezone=UTC+8 の場合、次のようなエラーが表示されます。
最後に、IDEA は依然としてデータベースに接続できないことを示すプロンプトを表示しますが、次の図に示すように、データベースにデータを正常に書き込むことができます。


いいねを押す +0
伊谢尔伦

GMT+8 を使用して利用できます。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!