今天写了个main测试hibernate annotation的方式CRUD数据库,用的手动导入需要的hibernate的jar包
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Configuration cf = null;
SessionFactory sf = null;
Transaction ts = null;
Session session = null;
try {
//get the Configuration
cf = new Configuration().configure();
sf = cf.buildSessionFactory();
session = sf.openSession();
//open Transaction
ts = session.beginTransaction();
//Save Users
Users user = new Users();
user.setName("Share.zeng");
session.save(user);
//commit Transaction
ts.commit();
session.close();
System.out.println("save successful.");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
出了个异常:Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/Synchronization
网上一查说我的Transaction 实例的jar没导对? 我用的却是是hibernate的import org.hibernate.cfg.Configuration;
后来发现说缺省了jta-1.1.jar
这jar,我测试了下确实是这样。
还查了下hibernate.jar中Transaction类和jta-*.jar Transaction类的关系,他们的对象是hibernate的 Transaction类引用了jta-*.jar Transaction
package org.hibernate;
import javax.transaction.Synchronization;
public abstract interface Transaction
{
..........
继续查了下 hibernate需要导入的基本jar(转载)
hibernate3.jar:
Hibernate的库,没有什么可说的,必须使用的jar包
cglib-2.1.3.jar:
CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包
asm.jar:
和cglib-2.1.3.jar有点类似
dom4j.jar:
dom4j是一个Java的XML
API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML
API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM
developerWorks上面可以找到一篇文章,对主流的Java XML
API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。我早在将近两年之前就开始使用dom4j,直到现在。如今你可以看到越
来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这是必须使用的jar
包,Hibernate用它来读写配置文件。
commons-collections.jar:
Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。必须使用的jar包。
commons-logging.jar:
它的出现是一个历史的的遗留的遗憾,当初Apache极力游说Sun把log4j加入JDK1.4,然而JDK1.4项目小组已经接近发布JDK1.4产
品的时间了,因此拒绝了Apache的要求,使用自己的java.util.logging,这个包的功能比log4j差的很远,性能也一般。后来
Apache就开发出来了commons-logging.jar用来兼容两个logger。因此用commons-logging.jar写的log程
序,底层的Logger是可以切换的,你可以选择log4j,java.util.logging或者它自带的Simple
Logger。不过我仍然强烈建议使用log4j,因为log4j性能很高,log输出信息时间几乎等于System.out,而处理一条log平均只需
要5us。你可以在Hibernate的src目录下找到Hibernate已经为你准备好了的log4j的配置文件,你只需要到Apache
网站去下载log4j就可以了。commons-logging.jar也是必须的jar包。
log4j-1.2.11.jar:
不用多说了
jta.jar: JTA规范,JTA(Java Transaction
API)是一种高层的,与实现无关的,与协议无关的API,应用程序和应用服务器可以使用JTA来访问事务。当Hibernate使用JTA的时候需要,
不过App Server都会带上,所以也是多余的。我这里必须使用,可能是因为Tomcat只是Web Server而非App Server的缘故。
ehcache-1.1.jar:
在Hibernate中使用它作为数据缓存的解决方案.
antlr-2.7.6rc1.jar:
在用hibernate3.0进行查询时,出现java.lang.NoClassDefFoundError: /ANTLRException异常. 所以必须导入.
看到一个关于此内容的网友帖子
//如果不用,会抛出异常:java.lang.NoClassDefFoundError: antlr/ANTLRException
antlr-2.7.2.jar
//如果不用此包,在启动时会抛出: nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type
asm.jar
//
如果不用此包,在启动时抛出:nested exception is java.lang.NoClassDefFoundError:
org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
aspectjweaver.jar
//如果不用此包,在启动时抛出:nested exception is java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter
cglib-2.1.3.jar
//如果不用此包,在启动时抛出:nested exception is java.lang.NoClassDefFoundError: org/apache/commons/collections/SequencedHashMap
commons-collections-3.1.jar
//这个就不用说啦,几乎所有框架都要使用的
commons-logging-1.0.4.jar
//如果不用此包会抛出:java.lang.NoClassDefFoundError: org/dom4j/DocumentException
dom4j-1.6.1.ja
r
//不用此包,在启动时招聘:java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
jta.jar
//Hibernate必须使用,注意此包是包含全部的。
hibernate3.jar
分享到:
相关推荐
《Hibernate程序高手秘笈》是一本深度探讨Hibernate框架的书籍,旨在帮助开发者全面理解并熟练掌握Hibernate的核心技术和最佳实践。Hibernate作为Java领域广泛使用的对象关系映射(ORM)框架,极大地简化了数据库...
错误表现:在初始化SessionFactory时,可能出现“org.hibernate.HibernateException: Could not instantiate dialect class”等异常,这通常是因为Hibernate配置文件中的dialect设置不正确或对应的JDBC驱动未引入。...
SSH,即Spring、Struts和Hibernate的组合,是Java开发中的经典企业级应用框架,用于构建高效、可扩展的Web应用程序。这三种技术在实际使用过程中可能会遇到各种错误,了解并解决这些错误对于开发者来说至关重要。 ...
Struts、Hibernate和MySQL是Java Web开发中常用的三大技术,它们共同构建了高效、稳定且易于维护的Web应用程序。在“struts+hibernate+mysql登录验证程序”这个项目中,开发者通过整合这些技术创建了一个简单的登录...
2. 错误处理:对可能出现的异常进行捕获和处理,如空指针、连接异常等。 3. 事务管理:合理设计事务边界,避免数据不一致。 通过这个“hibernate人生中第一个成功及完美程序”,初学者可以快速理解Hibernate的基本...
创建 Bean 时出现错误,通常是因为配置文件或实体类的定义存在问题。例如: ``` org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ...
### Hibernate常见错误解决方案 在开发基于Hibernate框架的应用程序时,我们经常会遇到各种各样的异常情况。这些异常不仅会影响系统的正常运行,还可能增加调试难度。本文将针对几个常见的Hibernate异常进行详细...
9. **错误处理和日志记录**:理解Hibernate常见的错误和异常,如 detached entity passed to persist 等,并配置合适的日志系统,如Log4j或SLF4J,以便追踪应用运行状态。 总的来说,Hibernate AIP涵盖了从项目初始...
**Hibernate的Java控制台程序Demo**是用于演示如何在Java应用程序中使用Hibernate框架进行对象关系映射(ORM)操作的实例。在这个项目中,我们将会深入理解Hibernate的核心概念,包括配置、实体类、持久化、会话管理...
配置文件中的任何小错误都可能导致应用程序无法启动或执行数据库操作。 2. **实体映射问题**:检查实体类的定义,确保每个字段都有正确的注解(例如,@Id、@GeneratedValue、@Column等),同时注意关联关系的配置...
4. Session:它是Hibernate的主要工作单元,用于在应用程序和数据库之间建立会话。Session提供了一种透明的方式来保存和检索对象,同时也负责事务管理。 5. Querying:Hibernate提供了HQL(Hibernate Query ...
当然我解决掉那个错误了。如果你也是自学,我写的这个程序你可以看下。绝对不会报错的哦,我试过了!!没写注释哈。。对不住了,我都不知道该怎么写,你要是看不懂,给我留言,我好加注释。。要知道我只看了一上午的...
5.6版本还提供了更好的类型安全性和错误检查,减少了运行时错误的可能性。对于大数据量的处理,增加了批量操作和流式API的支持,以提高效率。此外,此版本还增强了对NoSQL数据库的支持,反映了现代应用程序多样化的...
- 错误处理:使用异常处理机制,确保程序在遇到问题时能够优雅地恢复或给出错误提示。 - 性能优化:可能需要配置Hibernate的二级缓存,或者使用Spring的AOP进行日志记录和性能监控。 - 测试:编写单元测试和集成测试...
7. 约束错误消息的插值(Interpolating constraint error messages):为了使错误信息更加友好,Hibernate Validator支持错误消息的插值功能,可以让错误信息更加动态和个性化。 8. 约束分组(Grouping constraints...
Struts、Hibernate和Spring是Java开发中非常著名的三大框架,它们各自解决应用程序的不同层次问题,而将它们整合在一起,能够构建出高效、可维护的Web应用程序。本项目是一个基于这三个框架实现的简单登录功能,旨在...
例如,可以将`log4j.logger.org.hibernate`设置为`error`,以便仅在出现错误时记录日志。 接着设置Hibernate的基本配置文件,可以选择使用XML或Properties格式。这里以XML为例,文件名为`hibernate.cfg.xml`: ```...
1. **配置文件中缺少JNDI配置:**如果你的应用程序计划通过JNDI来访问SessionFactory,那么必须在Hibernate的配置文件(如`hibernate.cfg.xml`)中提供相应的JNDI名称。 2. **环境不支持JNDI:**某些测试环境中可能...