• [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 <mappingclass="com.model.TeacherInfo"/>

    近期学习Hibernate。尝试使用XML和Annotation两种方式进行POJO类的映射,有两个类:Student和Teacher。前者使用XML文件来映射类和属性,后者使用Annotation映射类和属性,并放在一个project下。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。




  • 相关阅读:
    Oracle笔记(十五) 数据库备份
    Oracle笔记(十四) 用户管理
    Oracle笔记(十三) 视图、同义词、索引
    Oracle笔记(十二) 集合、序列
    Oracle笔记(十一) 建表、更新、查询综合练习
    Oracle笔记(十) 约束
    Oracle笔记(八) 复杂查询及总结
    Oracle笔记(九) 表的创建及管理
    06-流程控制
    05-数据类型转换
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5314994.html
Copyright © 2020-2023  润新知