###一.數據庫驅動問題
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
下載地址:[點擊打開鏈接](http://download.csdn.net/detail/sunnyyoona/7791983)
### 二 .AnnotationConfiguration問題
問題:AnAnnotationConfiguration instance is required to use <mappingclass="com.model.TeacherInfo"/>
最近學習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 class="com.model.TeacherInfo"/>
原因分析:
Hibernate配置文件中,若帶有<mapping class="com.model.TeacherInfo"/>,則說明映射類時,采用了Annotation方式。在初始化Configuation時,應使用AnnoationConfiguration,代碼如下:
~~~
Configuration cfg = new AnnoationConfiguration();
SessionFactory sf = cfg.configure().buildSessionFactory();
~~~
如果,你在映射時,未使用過Annotation,則使用Configuration。
- 前言
- [Hibernate開發之路](1)Hibernate配置
- [Hibernate開發之路](2)Hibernate問題
- [Hibernate開發之路](3)基礎配置
- [Hibernate開發之路](4)ID生成策略
- [Hibernate開發之路](5)聯合主鍵
- [設計模式實踐之路](1)單例模式
- [Java]UDP通信的簡單例子
- [Java]套接字地址InetAddress講解
- [Java開發之路](1)final關鍵字
- [Java開發之路](2)Java字符串
- [Java開發之路](3)Java常用類
- [Java開發之路](4)String、StringBuffer與StringBuilder詳解
- [Java開發之路](5)異常詳解
- [Java開發之路](6)File類的使用
- [Java開發之路](7)RandomAccessFile類詳解
- [Java開發之路](8)輸入流和輸出流
- [Java開發之路](9)對象序列化與反序列化
- [Java開發之路](10)DOM解析XML文檔
- [Java開發之路](11)SAX解析XML文檔
- [Java開發之路](12)JDOM和DOM4J解析XML文檔
- [Java開發之路](14)反射機制
- [Java開發之路](15)注解
- [Java開發之路](16)學習log4j日志
- [Java開發之路](18)關于Class.getResource和ClassLoader.getResource的路徑問題
- [Java開發之路](19)Long緩存問題
- [Java開發之路](20)try-with-resource 異常聲明
- [Java開發之路](21)Comparator與Comparable
- [Java]Java工程師成神之路
- [細說Java](1)圖說字符串的不變性
- [細說Java](2)Java中字符串為什么是不可變的
- [細說Java](3)創建字符串是使用&quot; &quot;還是構造函數?