`
laodaobazi
  • 浏览: 277017 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

搭建Hibernate Annotation工程

阅读更多

首先从Hibernate官方网站下载并解压Hibernate Annotations的发布包。

 

这个预览版要求使用Hibernate 3.1.1或更高版本。请不要和老版本的Hibernate 3.x混合起来使用。

 

这个版本在Hibernate core 3.1.1的基础上工作良好。

 

首先确定你已经安装了JDK 5.0。当然就算使用低版本的JDK,
你仍然可以通过使用Xdoclet获得基于注解的元数据带来的部分好处。
不过请注意本文档只描述跟JDK5.0注解有关的内容,关于Xdoclet请参考相关文档。

 

首先就是设置classpath(当然是在IDE中创建了一个新项目之后)。

将Hibernate3核心文件以及其依赖的第三方库文件(请参考lib/README.txt文件)加入到你的classpath里面。

hibernate-annotations.jar
lib/ejb3-persistence.jar 加入到你的classpath 里面。

如果要使用 ,还需要将lucene的jar文件加入你的classpath。

 

package hello;

import org.hibernate.*;
import org.hibernate.cfg.*;
import test.*;
import test.animals.Dog;

public class HibernateUtil {

private static final SessionFactory sessionFactory;

static {
try {

sessionFactory = new AnnotationConfiguration().buildSessionFactory();
} catch (Throwable ex) {
// Log exception!
throw new ExceptionInInitializerError(ex);
}
}

public static Session getSession()
throws HibernateException {
return sessionFactory.openSession();
}
}

 

我们推荐在一个包装器(wrapper)类HibernateUtil
的静态初始化代码块中启动Hibernate。或许你在Hibernate文档的其他很多地方看到过这个类,
但是要在你的项目中使用注解,还需要对这个辅助(helper)类进行扩展。扩展如下:

 

package hello;

import org.hibernate.*;
import org.hibernate.cfg.*;
import test.*;
import test.animals.Dog;

public class HibernateUtil {

private static final SessionFactory sessionFactory;

static {
try {

sessionFactory = new AnnotationConfiguration().buildSessionFactory();
} catch (Throwable ex) {
// Log exception!
throw new ExceptionInInitializerError(ex);
}
}

public static Session getSession()
throws HibernateException {
return sessionFactory.openSession();
}
}

 这里比较有意思的是使用到了AnnotationConfiguration 类。
在XML配置文件(通常是hibernate.cfg.xml )中则定义了包和经过注解的类。下面的xml和前面的声明等价:

 

注意现在你可以混合使用hbm.xml和注解.

 

除了上面的方式,你还可以通过编程的方式定义包括注解的类和包

 

sessionFactory = new AnnotationConfiguration()
.addPackage("test.animals") //the fully qualified package name
.addAnnotatedClass(Flight.class)
.addAnnotatedClass(Sky.class)
.addAnnotatedClass(Person.class)
.addAnnotatedClass(Dog.class)
.buildSessionFactory();

 

你也可以使用Hibernate Entity Manager来完成以上功能。Hibernate Entity Manager有自己的一套配置机制,详情请参考相关文档。

 

除了启动方式和配置文件有所改变之外,结合注解来使用Hibernate API和以前没有什么区别,
在其他方面你还是可以继续保持以前的习惯和喜好(hibernate.properties
hibernate.cfg.xml , programmatic APIs等等)。
甚至对于同一个SessionFactory ,你都可以混合带注解的持久类以及传统的bm.cfg.xml声明方式。
然而你不能多次声明同一个类(要么通过注解要么通过hbm.xml配置文件),
而且在一个映射实体的类继承层次中,这两个配置策略不能同时使用.

 

为了简化从hbm文件到注解的迁移过程,
配置机制将自动检测在注解和hbm文件中重复的映射。
默认情况下hbm文件中的声明比类中的注解元数据具有更高的优先级。
这种优先级的设定是以类为单位的。
你也可以通过hibernate.mapping.precedence 修改这种优先级。
默认的值是hbm, class
如果改为class,hbm ,当发生冲突的时候,类中的注解将比hbm文件具有更高的优先级。

分享到:
评论

相关推荐

    利用MyEclipse进行Hibernate逆向工程

    ### 使用MyEclipse进行Hibernate逆向工程 #### 一、前言 随着软件开发技术的不断进步,开发工具也在不断优化和完善。MyEclipse作为一款非常流行的Java集成开发环境(IDE),不仅支持Java应用程序的开发,还提供了...

    struts2+spring2.5+hibernate3.2 annotation配置完整eclipse项目,带数据库脚本

    这个"sshTest"项目是一个使用这三个框架的注解配置的完整Eclipse工程,同时也包含了数据库脚本,方便开发者快速搭建和运行Web应用。 **Struts2** 是一个基于MVC设计模式的Action驱动的Web框架,主要用于处理用户...

    hibernate框架基本包大全

    "hibernate框架基本包大全"包含的可能是一系列用于搭建和运行Hibernate应用程序所需的JAR文件。这些JAR文件通常包含了Hibernate的核心库、依赖的第三方库以及可能的示例代码或配置文件。 1. **Hibernate核心库**:...

    hibernate包

    3. **Annotation处理库**:Hibernate支持使用Java注解来定义实体类和它们的属性,如@Entity、@Table、@Column等。这些注解的处理需要相关的库,如hibernate-jpa-2.1-api.jar和hibernate-entitymanager.jar。 4. **...

    jersey+spring+hibernate配置

    ### Jersey+Spring+Hibernate配置详解 #### 一、编写目的 ...通过上述步骤,我们成功搭建了一个基于Spring、Hibernate和Jersey的RESTful Web服务。这不仅可以作为一个基础模板,还可以根据具体需求进行扩展和优化。

    基于注解的Spring MVC+Hibernate简单入门

    #### 工程搭建 ##### 创建工程 1. **创建Dynamic Web Project**:在Eclipse或MyEclipse中创建一个动态Web项目。 2. **包结构**:按照以下结构组织代码: - `com.dao`:系统DAO层实现 - `com.model`:实体类,...

    通向架构师的道路(第二十一天)万能框架spring(三)之SSH.docx

    要搭建一个 SSH 框架,首先我们需要使用 Maven 来建立我们的工程,然后配置 Maven 库,最后配置 Hibernate 和 Spring 的结合。 六、SSH 框架的优点 SSH 框架的优点是可以快速开发、灵活、可扩展性强。使用 SSH ...

    从最基本的Java工程搭建SpringMVC+SpringDataJPA+Hibernate

    以上就是从一个基础的Java工程逐步构建到集成Spring、SpringMVC、SpringDataJPA+Hibernate的过程。这个过程展示了如何配置Maven工程、转换为Web工程、集成Spring框架、SpringMVC和数据访问层。理解这些步骤有助于你...

    客户关系管理系统框架搭建(二)

    * 搭建hibernate层 * 定义需求:部门信息的页面数据要插入到数据库中 * 定义表 CREATE TABLE `sys_user_group` ( `id` INTEGER(11) NOT NULL AUTO_INCREMENT, #编号 `remark` TEXT, #备注 `...

    114020_java-SSH2-Struts2.1、Spring3.0、Hibernate3.3大框架整合详细图解.docx

    - 选择Hibernate3.3版本,选择`Hibernate3.3Annotation&EntityManager`和`Hibernate3.3CoreLibraries`类库。 - 选择使用Spring配置文件`applicationContext.xml`,而不是默认的`hibernate.cfg.xml`。 - 选择已有的`...

    springboot2.4从实战到源码分析Demo源码工程.zip

    SpringBoot是Spring框架的一个模块,旨在简化Spring应用的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如数据库连接、定时任务、缓存、邮件服务等,使得开发者能够快速构建一个独立运行的Java应用。...

    spring mvc +mybatis框架实现增删查改

    5. **Mapper Annotation**:也可以通过注解方式定义SQL和结果映射,简化配置。 结合Spring MVC和MyBatis,我们可以创建一个服务层(Service)和一个DAO层(Data Access Object)。服务层封装业务逻辑,调用DAO层...

    sshe整合教程

    - **表结构生成**:利用 MyEclipse 自动生成 hibernate mapping 文件(.hbm.xml)或 annotation 类。 #### 四、SSHE框架搭建 1. **创建 Maven 工程** - 在 MyEclipse 中使用 Maven 创建新工程。 - 添加必要的...

    通俗易懂的SSH实例 实现增删改查功能

    SSH(Struts + Spring + Hibernate)是Java Web开发中一个非常流行的组合框架,它能够帮助开发者快速搭建出稳定、高效的Web应用程序。接下来我们将详细介绍如何通过MyEclipse集成开发环境(IDE)构建一个完整的SSH...

    廖雪峰springboot两小时入门课程的工程

    hibernate: ddl-auto: update ``` 【安全控制】 SpringBoot内置了Spring Security,可以轻松实现用户认证和授权。通过添加`spring-boot-starter-security`起步依赖,然后配置安全规则,可以快速搭建安全的Web...

    ssh2整合案例和详解

    #### 二、环境搭建 **1. 创建WEB工程项目** 首先,在MyEclipse中创建一个新的Web项目,项目名称可自定义,本案例中将其命名为“ssh2”。 **2. 导入核心Jar包** 对于Struts2,需要导入所有相关的Jar包到项目的`...

    Android+ssh项目综合实践

    1. 创建Web工程,并添加Struts2所需的JAR包。 2. 在`web.xml`中配置Struts2的Filter,以启动Struts2。 3. 创建`struts.xml`配置文件,定义Action及其行为。 4. 设计项目的包结构,包括DAO层、Service层、Action层、...

    ssh2的基于MVC的curd(带事务)

    #### 二、环境搭建步骤 1. **添加Struts2的相关依赖**: - 在项目中集成Struts2框架,首先需要添加Struts2的核心库以及其他必要的扩展库,例如拦截器、文件上传等组件。 2. **添加Hibernate框架支持**: - 需要...

Global site tag (gtag.js) - Google Analytics