`
ltx
  • 浏览: 25855 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

关于Hibernate3.2以后版本的注解映射

阅读更多

    Hibernate是一个开发源码的对象关系映射框架,它对JDBC进行例如非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象思维来操作数据库。
    Hibernate可以应用的任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servler/JSP的web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JAVAEE架构中取代CMP,完成数据持久化的重任。
    大多数开发机构经常采取创建各自独立的数据持久层。一旦底层的数据结构发生改变,那么修改应用的其余部分使之适应这种改变的代价是十分巨大的。Hibernate适时的填补了这以空白,它为Java应用提供了一个易用的,高效率的对象关系映射框架。Hibernte是一个轻量级的持久性框架,功能却非常丰富。
主要优点:
1.Hibernate使用JAVA反射机制而不是字节码增强程序来实现透明性。
2.Hibernate的性能非常好,因为它是一个轻量级的框架。映射的灵活性很出色。

它支持各种数据库,从一对一到多对多的各种复杂关系。

Hibernate3.2以前的版本并不支持注解映射,每一个POJO类都要对应一个映射文件(XXX.hbm.xml),在一个比较大的项目中,如果采用配置文件映射,可想而知,相当复杂,容易混乱,正好,Hibernate3.2以后版本解决了此问题,通过注解,即可完成映射,并不需要映射文件,如图:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   图中完成了id和name的映射,其中@Column表示映射的列, name 属性表示数据库中的列名,strategy 属性表示了主键是生成策略,@Entity表示实体类,@Table表示映射的表,name表示映射到数据库中的表名,其中name可以省略,前提是类名和表名相同。

    这些注解均在 javax.persistence包中,所以要导入这个包,才能使用这些注解

 

 

使用Hibernate3.2 以上版本的注解映射,需导入以下jar包:

1.       ejb3-persistence.jar

2.       hibernate-annotations.jar

3.       hibernate-commons-annotations.jar

4.       hibernate-core.jar

如果和Spring 整合,那么需要另外导入一个jar(spring.jar)

注意:

spring.jar必须是 Spring2.5以上版本的,因为,Spring2.5之前org.springframework.orm.hibernate3.LocalSessionFactoryBean类中,并没有 packageToScan 这个属性,只有mappingResuorces这个属性。而packageToScan这个属性正是映射包中的类,而mappingResuorces只是映射某个文件。

<property name=” packageToScan”>

       <list><value>com.test.po</value></list>

</property>

这样,即可完成映射。

 

在使用 Hiberante注解映射和Spring整合过程中可能遇到的异常:

  1.  如出现java.lang.NoClassDefFoundError: org/dom4j/ ,导入dom4j.jar包即可
  2. 如出现java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory    需要导入以下四个jar(1 slf4j-api-1.4.3.jar2slf4j-jdk14-1.4.3.jar3slf4j-log4j12-1.4.3.jar4log4j-over-slf4j-1.4.3.jar) 即可
  3. 如出现java.lang.NoClassDefFoundError: javax/transaction/TransactionManager  需要导入 jta.jar
  4.   java.lang.ClassNotFoundException: antlr.ANTLRException  则需要导入ant.jar
  5.   org.springframework.util.Assert.noNullElements([Ljava/lang/Object;Ljava/lang/String;)V  Invalid property 'packagesToScan' of bean class [org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean]: Bean property 'packagesToScan' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?   这是由于,spring.jar包的版本不符,把spring.jar换成Spring 2.5以上版本即可
  6. 6.  java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V        jar包冲突,删除asm-2.2.3.jar  即可
分享到:
评论

相关推荐

    struts1.2 + spring2.5 + hibernate3.2框架demo

    Hibernate3.2则是一个对象关系映射(ORM)工具,简化了数据库操作。 首先,Struts1.2框架的核心是ActionServlet,它作为MVC模式中的控制器,接收HTTP请求并调用相应的Action类来处理业务逻辑。ActionForm对象用于...

    Hibernate3.2jar包

    Hibernate3.2是一款广泛应用于Java开发中的开源对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者能够用面向对象的方式处理数据。这个jar包是Hibernate3.2版本的核心组件,包含了所有必要的类库,使得...

    hibernate3.2

    Hibernate 3.2 是一个非常重要的Java持久化框架版本,它极大地简化了数据库与Java对象之间的交互,使得开发者能够更加专注于业务逻辑而不是繁琐的数据访问层实现。本篇将深入探讨Hibernate 3.2的主要特性、核心概念...

    开发框架 hibernate3.2

    在Hibernate 3.2版本中,这个框架提供了丰富的功能和改进,使得开发者能够更加高效、便捷地处理数据持久化问题。 1. **对象关系映射(ORM)基础** - ORM是将对象模型与关系数据库模型之间建立映射的技术,使得...

    Hibernate3.2整套源码

    本资源包含的是Hibernate 3.2版本的完整源代码,这个版本在当时是相当稳定且广泛使用的。 在深入探讨Hibernate 3.2的源码之前,我们需要理解ORM的基本概念。ORM将数据库中的表映射为Java对象,通过对象之间的关系来...

    some simple demo about hibernate3.2 and spring2.5

    标题 "some simple demo about hibernate3.2 and spring2.5" 暗示这是一个关于如何集成和使用 Hibernate 3.2 和 Spring 2.5 的简单演示项目。这两个库在Java开发中扮演着重要角色,Hibernate是流行的对象关系映射...

    hibernate3.2 jar包

    Hibernate 3.2 是一个非常重要的Java持久化框架,它为开发者提供了强大的对象关系映射(ORM)功能,使得在Java应用中操作数据库变得更加简单。这个核心jar包包含了实现Hibernate功能所需的所有基本类和接口,是开发...

    Hibernate3.2官方中文参考手册 高清晰 pdf

    - **Mapping**:对象关系映射是 Hibernate 的核心功能,通过 XML 或注解的形式定义 Java 类与数据库表之间的映射关系。 #### 四、配置与环境 - **hibernate.cfg.xml**:这是 Hibernate 的核心配置文件,其中定义了...

    struts2.0 spring2.5 hibernate3.2 注解最新框架

    Hibernate3.2是流行的ORM(对象关系映射)框架,它简化了数据库操作,将SQL与Java代码分离。在Hibernate3.2中,注解如`@Entity`、`@Table`、`@Id`等被用来标记实体类和属性,使得数据库模型与Java对象可以直接对应。...

    Hibernate3.2官方中文参考手册.pdf+Hibernate.pdf(Hibernate的学习资料)

    Hibernate3.2是其发展中的一个重要版本,提供了许多改进和新特性。 在《Hibernate3.2官方中文参考手册》中,我们可以深入学习到以下关键知识点: 1. **对象关系映射(ORM)基础**:ORM的核心思想是将数据库中的...

    hibernate3.2用到的jar包

    在Hibernate 3.2版本中,它提供了许多改进和增强的功能,包括性能优化、对JPA(Java Persistence API)的支持以及对最新数据库版本的兼容性。 以下是一些关于Hibernate 3.2中关键知识点的详细解释: 1. **对象关系...

    hibernate_3.2官方开发包

    8. **实体类和注解**:在Hibernate 3.2中,除了传统的XML映射文件,也可以使用Java 5以上的注解来标注实体类,简化配置。 9. **Caching缓存**:Hibernate支持二级缓存,可以集成第三方缓存系统,如 Ehcache,以...

    hibernate3.2 源码

    这个压缩包包含的是Hibernate 3.2版本的源代码,这是一个非常重要的里程碑,因为它在当时引入了许多改进和新特性,对Java社区产生了深远的影响。 在Hibernate 3.2中,有几个关键的知识点值得一提: 1. **对象关系...

    hibernate3.2 chm 帮助文档

    Hibernate Annotation部分是关于使用注解进行对象关系映射的详细指南。在Hibernate 3.2中,注解成为主要的映射方式,替代了传统的XML配置。此文档详细讲解了各种注解的使用,如@Entity、@Table、@Column、@Id、@...

    hibernate-3.2 源码

    此外,Hibernate 3.2支持注解式映射,可以直接在Java类或属性上添加注解来完成映射。 四、持久化操作 1. 插入(Save/SaveOrUpdate):使用Session的save()或saveOrUpdate()方法,可以将新建的对象持久化到数据库。 ...

    hibernate-3.2源代码

    在Hibernate 3.2版本中,开发者们能够更深入地理解其内部机制,从而提高开发效率和应用性能。本篇文章将详细解析Hibernate 3.2的核心功能和源代码结构。 一、Hibernate概览 Hibernate是Java社区中的明星项目,它...

    hibernate3.2参考文档

    综上所述,"Hibernate3.2参考文档"提供了全面的指南,涵盖了从基础到高级的所有主题,对于学习和掌握Hibernate 3.2版本的开发人员来说是非常宝贵的资源。无论是初学者还是经验丰富的开发者,都能从中受益,提升自己...

    Hibernate3.2源代码

    Hibernate 3.2 是一个非常重要的Java持久化框架版本,它极大地简化了数据库与Java对象之间的交互。这个源代码包提供了深入理解Hibernate工作原理的机会,同时也包含对应的.jar包,使得开发者可以直接在项目中使用。...

    hibernate3.2课件共31页.pdf.zip

    【hibernate3.2课件共31页.pdf.zip】这个压缩文件包含了关于Hibernate 3.2的详细教学资料,共计31页。Hibernate是一个非常重要的Java持久化框架,它简化了数据库操作,使开发者能够更加专注于业务逻辑而不是数据库...

Global site tag (gtag.js) - Google Analytics