閱讀273 返回首頁    go 微軟 go Office


[Hibernate開發之路](2)Hibernate問題

(1)數據庫驅動問題

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.HibernateException: JDBC Driver class not found: com.microsoft.sqlserver.jdbc.SQLServerDriver
at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:89)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:137)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:79)
at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:425)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:89)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339)
at com.test.Test.main(Test.java:17)
Caused by: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:192)
at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:84)
... 8 more


解決:

(1)找不到這個jar包,你確定導入了嗎?web項目的話放到WEB-INF下的lib目錄,java項目的話需要add to build path。

(2)你找找看你這個jar包裏麵有沒有com.microsoft.sqlserver.jdbc.SQLServerDriver這個類,沒有的話就是jar包不對。

(3)看清楚 有的jar包是com.microsoft.sqlserver.jdbc.SQLServerDriver有的jar包是com.microsoft.jdbc.sqlserver.SQLServerDriver

下載地址:點擊打開鏈接

二 AnnotationConfiguration問題

問題:AnAnnotationConfiguration instance is required to use <mapping/>

最近學習Hibernate,嚐試使用XML和Annotation兩種方式進行POJO類的映射,有兩個類:Student和Teacher,前者使用XML文件來映射類和屬性,後者使用Annotation映射類和屬性,並放在一個工程下。Hibernate的配置文件——hibernate.cfg.xml位於src目錄下。在單元測試時,執行下麵代碼時,會產生異常。

Configuration cfg = new Configuration();
SessionFactory sf = cfg.configure().buildSessionFactory();

異常信息為:org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping />
原因分析:
Hibernate配置文件中,若帶有<mapping />,則說明映射類時,采用了Annotation方式。在初始化Configuation時,應使用AnnoationConfiguration,代碼如下:

Configuration cfg = new AnnoationConfiguration();
SessionFactory sf = cfg.configure().buildSessionFactory();

如果,你在映射時,未使用過Annotation,則使用Configuration。




最後更新:2017-04-03 05:39:58

  上一篇:go Adaboost 總結的很好
  下一篇:go 數據挖掘(數據分析)從業指南