[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。

时间: 2024-08-24 20:06:12

[Hibernate开发之路](2)Hibernate问题的相关文章

[Hibernate开发之路](3)基础配置

一 JDBC链接 通常你希望SessionFactory来为你创建和缓存(pool)JDBC连接. 假设你採用这样的方式, 仅仅须要例如以下例所看到的那样,打开一个Session: Session session = sessions.openSession(); // open a new Session 一旦你须要进行数据訪问时, 就会从连接池(connection pool)获得一个JDBC连接. 为了使这样的方式工作起来, 我们须要向Hibernate传递一些JDBC连接的属性. 我们如

[Hibernate开发之路](4)ID生成策略

一 对象关系数据库映射之Id 被映射的类必须定义相应数据库表主键字段.大多数类有一个JavaBeans风格的属性, 为每个实例包括唯一的标识. <id> 元素定义了该属性到数据库表主键字段的映射. <id name="propertyName" type="typename" column="column_name" unsaved-value="null|any|none|undefined|id_value&quo

Hibernate开发中遇到org.hibernate.NonUniqueObjectException处理

今天在项目中遇到更新数据的操作,在编码中发现并未报错,但数据并未得到更新,于是花了大半时间找是什么问题,最后发现是try的时候直接把异常吞了(= =!!血的教训呐)! 排查后发现抛出一个异常org.hibernate.NonUniqueObjectException,通过反复检查和度娘的结果发现,原来是下面的代码出错 Session session = HibernateSessionFactory.getSession(); session.getTransaction().begin();

【SSH进阶之路】Hibernate系列——总结篇(九)

这篇博文是Hibernate系列的最后一篇,既然是最后一篇,我们就应该进行一下从头到尾,整体上的总结,将这个系列的内容融会贯通. 概念 Hibernate是一个对象关系映射框架,当然从分层的角度看,我们也说它是数据持久层的框架. 我们从上一句话可以看出Hibernate的核心:面向对象.关系映射以及数据持久化.前面两个概念很容易理解,而对于"数据持久化",就是将数据或者某物体,永久的保存起来.现实生活中的例子有很多,例如:鲜肉冷藏,水果做成罐头,而对于编程而言就是将数据保存在文件或磁盘

【SSH进阶之路】Hibernate基本映射(三)

[SSH进阶之路]Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库. [SSH进阶之路]Hibernate搭建开发环境+简单实例(二),小编搭建了基本Hibernate的开发环境,并做了一个简单实例,对它的基本原理有了一个理性的认识. 这篇博客小编介绍Hibernate的经典内容:对象关系映射.主要介绍映射的基本概念,映射的分类,映射文件. 概念 ORM(Object Relational Mapping),即对象关系映射.

【SSH进阶之路】Hibernate映射——一对一单向关联映射(五)

[SSH进阶之路]Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库. [SSH进阶之路]Hibernate搭建开发环境+简单实例(二),小编搭建了基本Hibernate的开发环境,并做了一个简单实例,对它的基本原理有了一个理性的认识. [SSH进阶之路]Hibernate基本映射(三),我们介绍了Hibernate的基本映射(即对一个实体进行映射)的相关概念,并给大家实现相关实例,比较简单. [SSH进阶之路]Hiberna

【SSH进阶之路】Hibernate映射——多对一单向关联映射(四)

[SSH进阶之路]Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库. [SSH进阶之路]Hibernate搭建开发环境+简单实例(二),小编搭建了基本Hibernate的开发环境,并做了一个简单实例,对它的基本原理有了一个理性的认识. [SSH进阶之路]Hibernate基本映射(三),我们介绍了Hibernate的基本映射(即对一个实体进行映射)的相关概念,并给大家实现相关实例,比较简单. 这篇博客,我们开始介绍基于基本映

Hibernate开发流程

一:基本开发流程: -->导入jar包,hibernate.jar + required + jpa + 数据库驱动包 -->对实体类进行映射,写配置文件 -->src目录下添加hibernate.cfg.xml文件 数据库相关配置,其他相关配置(是否显示sql,是否自动建表等),映射文件加载 -->测试DAO 二:hibernate程序执行流程 三:hibernate.cfg.xml配置详解 1 <!DOCTYPE hibernate-configuration PUBLI

[原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword,

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------