一樣的程序,用了5.2版本的hibernate的jar包就出錯
一樣的程序,老程序用老師給的jar包跑沒出錯,下了5.2版本的hibernate的jar包,想試試新版本創(chuàng)建SessionFactory的方式就一直報錯。
老程序:
Configuration c = new Configuration().configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
.applySettings(c.getProperties()).buildServiceRegistry();
SessionFactory sf = c.buildSessionFactory(serviceRegistry);
Session s = sf.openSession();
Transaction transaction = s.beginTransaction();
新程序:
Configuration c = new Configuration().configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(c.getProperties()).build();
SessionFactory sf = c.buildSessionFactory(serviceRegistry);
Session s = sf.openSession();
Transaction transaction = s.beginTransaction();
錯誤信息:
java.lang.NoClassDefFoundError:javax/xml/bind/JAXBException
去網(wǎng)上查說是缺這個jar包,下載導(dǎo)入后還是會報這個錯
org.hibernate.internal.util.config.ConfigurationException:Unable to perform unmarshalling at line number 0 and column 0 in?
RESOURCE hibernate.cfg.xml. Message:null
同時控制臺會輸出:
1月 26, 2018 11:44:32 上午 org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.2.12.Final}
1月 26, 2018 11:44:32 上午 org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
使用的jar包如下,jaxb-api-2.2.12.jar是后面添加進去的那個jar包
2020-06-10
一、如果hibernate.cfg.xml配置文件沒有錯的話(1、包括一些轉(zhuǎn)義字符有沒有區(qū)分,主要在數(shù)據(jù)庫連接那一項的jdbc:mysql://localhost:3306/hibernate_day01?useSSL=false&serverTimezone=UTC其中'&'要寫成‘&’;2、右鍵,選擇preferences查看文本編碼格式是不是utf-8;)。
二、檢查完hibernate.cfg.xml文件沒問題還無法解決那就很大原因是jdk版本問題,先試試用jdk1.8,不行再試試更低版本的
2018-07-31
老師用的包庫太老了,不建議使用