平台:
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
com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/xk_demo root 5566 1 org.hibernate.dialect.MySQLDialect thread true
和自己写的测试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()); } } }
Tambah
connection.url
selepas nilaiAnda boleh menggunakan kaedah yang sama jika anda tidak dapat menyambung ke IDEA DataBase.
Anda boleh cuba laksanakan arahan dalam mysql:
set global time_zone='+8:00'
@junbaor Terima kasih atas nasihat Jika anda menambah
?serverTimezone=UTC
, ia boleh ditulis ke pangkalan data Walau bagaimanapun, jika ia?serverTimezone=UTC+8
, ia akan menggesa ralat seperti yang ditunjukkan di bawah:.
Akhir sekali, IDEA masih menggesa bahawa pangkalan data tidak boleh disambungkan, tetapi ia boleh menulis data ke pangkalan data seperti biasa, seperti yang ditunjukkan dalam rajah di bawah:
Tersedia menggunakan GMT+8.