当前位置:文档之家› 最有价值的hibernate配置文件

最有价值的hibernate配置文件

最有价值的hibernate配置文件
最有价值的hibernate配置文件

经典hibernate配置详解

2008-09-09 20:29:29

标签:Hibernate配置JA V A框架

元素的属性

属性描述

class-description 指定描述类的javaDoc

field-description 指定描述类的属性javaDoc

interface 如果为true,表明生成接口而非类,默认false implements 指定类所实现的接口

extends 指定继承的父类名

generated-class 重新指定生成的类名

scope-class 指定类的修饰符,默认public

scope-set 指定set方法的修饰符,默认public

scope-get 指定get方法的修饰符,默认public

scope-field 指定类的属性的修饰符,默认private

use-in-toString 如果为true,表示在toString()方法中包含此属性gen-property 如果为false,不会在java类中生成此属性,默认true finder-method 指定find方法名

元素属性

name 设定字段名字

length 设定字段长度

not-null 如为true,指名该字段不允许为null,默认false

unique 如为true,指名该字段具有唯一约束,默认false

index 给一个或多个字段建立索引

unique-key 为多个字段设定唯一约束

foreign-key 为外键约束命名,在元素中包含foreign-key属性,在双向关联中,inverse属性为true的一端不能设置foreign-key

sql-type 设定字段sql类型

check 设定sql检查约束

用于控制insert or update 语句的映射属性

元素的insert属性如为false,在insert中不包含该字段,默认为true

元素的update属性如为false,在update中不包含该字段,默认为true

元素的mutable属性如为false,等价于所有字段的update属性

为false,默认为true

元素的dunameic-insert属性如为true,表明动态生成insert 语句,只有不为null,才会包含insert语句中,默认false

元素的dunameic-update属性如为true,表明动态生成update语句,只有不为null,才会包含insert语句中,默认false

元素的dunameic-insert属性如为true,表明等价于所有字段动态生成insert语句,只有不为null,才会包含insert语句中,默认false 元素的dunameic-update属性如为true,表明等价于所有字段动态生成update语句,只有不为null,才会包含insert语句中,默认false

Hibernate提供的内置标识符生成器

increment 适用于代理主键,自动递增,增1(只能是long,int,short) identity 适用于代理主键,底层数据库自动增长字段类型(数据库需支持,只能是long,int,short)

(oralce)sequence 适用于代理主键,根据底层数据库的序列来生成标识符(数据库支持序列,只能是long,int,short)

hilo 适用于代理主键,根据high/low算法来生成.Hibernate把特定表的字段作为high值,在默认情况下选用hibernate_unique_key表的next_hi 字段

(mysql,mssql)native 适用于代理主键,根据数据库自动生成标识符支持能力,来选择identity,sequence,hilo

uuid.hex 适用于代理主键,采用128位UUID(universal unique

identification)算法来生成标识.此算法能在网络环境中生成唯一的字符串标识符,

(不建议使用,字符串类型比整形类型的主键占用更多的空间) assigned 适用于自然主键,由java程序负责生成.

指定描述类的javaDoc

指名类的修饰类型

指定继承类

指定类,类属性的getxxx(),setxxx()方法的修饰符

包括:static,final,abstract,public,protected,private

附加属性不会影响Hibernate的运行行为

指定描述类的javaDoc

指定描述类属性的javaDoc

注意:

1 Session的mit()和flush()方法的区别,flush()方法进行清理缓存的操作,执行一系列的SQL语句,但不会提交事务;

mit()方法会先调用flush(),然后提交事务.提交事务意味着对数据库所作的更新被永久保存下来.

2 Session的setFlushMode()方法用于设定清理缓存的时间点.FlushMode类定义了三种不同的清理模式

清理缓存的模式Session的查询方法Session的mit()方法Session的flush()方法

FlushMode.AUTO 清理清理清理

FlushMode.MIT 不清理清理清理

FlushMode.NEVER 不清理不清理清理

3 Hibernate应用中java对象的状态

临时状态(transient):刚刚用new语句创建,还没被持久化,不处与Session的缓存中,处于临时状态的java对象被称为临时对象.

持久化状态(persistent):已经被持久化,加入session的缓存中.处于持久化状态的java对象被称为持久化对象.

游离状态(detached):已经被持久化,但不在处于session的缓存中.处于游离状态的java对象被称为游离对象.

(注意:::::)持久化类与持久化对象是不同的概念.持久化类的实例可以处于临时状态,持久化状态和游离状态.其中处于

持久化状态的实例被称为持久化状态.

临时对象的特性:

1 不处于缓存中,也可以说,不被任何一个Session实例关联

2 在数据中没有对应的纪录.

在此情况下,java对象进入临时状态

1 当通过new创建一个对象时,此时不和数据库中的任何纪录的ex:对象的状态转化过程

程序代码对象的生命周期对象的状态

tx=session.beginTransaction();

Object obj=new Object("tow",new HashSet()); 开始生命周期临时状态

session.save(obj); 处于生命周期转化为持久状态

Long id=obj.getId();

obj=null;

Object obj2=(Object)session.load(Object.class,id); 处于生命周期处于持久化状态

tx.mit();

session.close(); 处于生命周期转变成游离状态

System.out.print(obj2.getName()); 处于生命周期处于游离状态

obj2=null; 结束生命周期结束生命周期

4 cascade属性

cascade属性值描述

none 在保存更新时,忽略其他关联对象,他是cascade默认属性

save-update 当通过Session的save(),update()以及saveOrUpdate()方法来保存

或更新当前对象时,及联保存所有关联的新建的临时对象,并且及联更新所有关联的游离对象

delete 当通过session的delete()方法删除当前对象时,及联删除所有对象

all 包含save-update及delete行为,此外对当前对象执行evict()或lock ()操作时,也会对所有关联的持久化对象执行evict()或lock()操作delete-orphan 删除所有和当前对象解除关联关系的对象

all-delete-orphan 包含all和delete-orphan

5 Hibernate映射类型,对应的java基本类型及对应的标准SQL类型

Hibernate 映射类型java类型标准SQL类型

integer或者int int INTEGER

long long BIGINT

short short SMALLINT

byte byte TINYINT

float float FLOAT

double double DOUBLE

big_decimal java.math.BigDecimal NUMERIC

character char and string CHAR

string string V ARCHAR

boolean boolean BIT

Hibernate映射类型,对应的java时间和日期类型及对应的标准SQL类型

映射类型java类型标准SQL类型描述

date java.util.Date或者java.sql.Date DATE 代表日期,YYYY-MM-DD time java.util.Date或者java.sql.Date TIME 代表时间,形式为HH:MM:SS

timestamp java.util.Date或者java.sql.Timestamp TIMESTAMP 代表日期和时间,YYYYMMDDHHMMSS

calendar java.util.Calendar TIMESTAMP 同上

calendar_date java.util.Calendar DATE 代表日期,YYYY-MM-DD

Hibernate配置文件的DTD

Hibernate中有两个配置文件 映射文件Xxx.hbm.xml 映射文件的的文件头DTD文件内容:

配置文件hibernate.cfg.xml 配置文件的文件头DTD文件内容: org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql://localhost/minmin?characterEncoding=gb2312 root minmin true create

Hibernate练习题

Hibernate&EJB考试试题 1、下面关于Hibernate说法正确的是()(选择两项) A)Hibernate是ORM的一种实现方式 B)Hibernate不要JDBC的支持 C)属于控制层 D)属于数据持久层 2、下面关于ORM的说法错误的是()(选择两项) A)对象关系映射,让现实中的对象同数据库的表产生映射(类与表产生映射) B)对象关系映射,让类同表产生关系 C)对象关系映射,让类同记录产生关系(类的实例与记录(表中的一行数据)产生关系) D)对象关系映射,让类中的属性同表中的列产生关系 3、下面关于Hibernate中Session的说法正确的是()(选择两项) A)Session是轻量级的,可以随意的创建和销毁 B)Session是重量级的,不能随意的创建和销毁 C)Session是线程安全的 D)Session不是线程安全的 4、在Hibernate中,以下()不属于session的方法 A、close() B. open() C. update() D. delete() 5、下面关于Hibernate中load和get方法说法正确的是() A)这两个方法是一样的,没有任何的区别 B)这两个方法不一样,load先找缓存,再找数据库

C)这两个方法不一样,get先找缓存,再找数据库 D)以上说法都不对 注:load()和get()都是先找缓存,再找数据库。 不同点是在检索时: load()是延迟检索,先返回代理对象,访问对象时在发出sql命令Get()是立即检索,直接发出sql命令,返回对象 6、在Hibernate中修改对象的说话错误的是() A)只能利用update方法来做修改 B)可以利用saveOrUpdate方法来做修改 C)可以利用HQL语句来做修改 D)不能利用HQL语句来修改 7、下面关于Hibernate中Transaction的使用说法正确的是()(选择两项) A)Transaction是可有可无的 B)Transaction在做查询的时候是可有可无的 C)Transaction在做修改的时候是可有可无的 D)Transaction在做修改的时候是必须的 8、使用Hibernate技术实现数据持久化时,下面()内容不在 Hibernate配置文件中配置(选择一项) A) 数据库连接信息 B) 数据库类型(dialect) C) show_sql参数 D) 数据库表和实体的映射信息

Hibernate3.6(开发必看)

1.Java对象持久化概述 1.1.应用程序的分层体系结构 1.1.1.基于B/S的典型三层架构 说明: 1,展现层:提供与用户交互的界面。 2,业务逻辑层:实现各种业务逻辑。 3,数据访问层:负责存放和管理应用程序的持久化业务数据。 1.1. 2.数据访问层与Hibernate在Java应用程序中的 角色 数据访问层(持久化层)封装了数据访问的细节,为业务逻辑层提供了面向对象的API。完善的持久化层应该达到的目标: 1,代码重用性高,可完成所有的数据访问操作。 2,如果需要的话,能够支持多种数据库平台。 3,具有相对独立性,当持久化层变化时,不会影响上层实现。 在数据访问层(持久化层)中可以使用Hibernate框架以实现要求,如下图所示:

1.2.软件模型 1.2.1.各种模型的说明 概念模型: 模拟问题域中的真实实体。描述每个实体的概念和属性及实体间关系。不描述实体行为。实体间的关系有一对一、一对多和多对多。。 关系数据模型: 在概念模型的基础上建立起来的,用于描述这些关系数据的静态结构。有以下内容组成:1,若干表 2,表的所有索引 3,视图 4,触发器 5,表与表之间的参照完整性

域模型: 在软件的分析阶段创建概念模型,在软件设计阶段创建域模型。 组成部分: 1,具有状态和行为的域对象。 2,域对象之间的关联。 域对象(domain object): 构成域模型的基本元素就是域对象。对真实世界的实体的软件抽象,也叫做业务对象(Business Object,BO)。域对象可代表业务领域中的人、地点、事物或概念。 域对象分为以下几种: 1,实体域对象:通常是指业务领域中的名词。(plain old java object,简单Java 对象)。 2,过程域对象:应用中的业务逻辑或流程。依赖于实体域对象,业务领域中的动词。如发出订单、登陆等。 3,事件域对象:应用中的一些事件(警告、异常)。 1.2.2.域对象间的关系 关联: 类间的引用关系。以属性定义的方式表现。

spring4.x + hibernate4.x 配置详解

spring4.x + hibernate4.x 配置详解 关于spring和hibernate的使用以及特征等等,在此不再啰嗦,相信大家也都知道,或者去搜索一下即可。 本篇博文的内容主要是我最近整理的关于spring4.x 和hibernate 4.x 相关配置和使用方式,当然spring3.x以及hibernate4.x也可以借鉴。 首先是配置文件web.xml 增加以下代码即可 contextConfigLocation classpath*:/applicationContext.xml org.springframework.web.context.ContextLoaderListener 然后建立 applicationContext.xml 文件,src下。文件内容如下,注释我尽量写的很详细 org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql:///hibernatedemo root yzp140103 这样就配置好了。 接下来,要做的就是做开发测试了:在项目的src目录下新建一个实体类包com.joe.entity,在该包下新建一个实体类Student,代码如下: package com.joe.entity; import java.io.Serializable;

用MyEclipse如何自动生成hibernate的.hbm.xml文件

用MyEclipse如何自动生成hibernate的.hbm.xml文件(2010-07-29 17:36:01) 今天在网上看到很多人都不知道怎么用MyEclipse自动生成hibernate的.hbm.xml文件。我甚至看到有位兄弟竟然自己写出那个格式的文件来。首先我不得不佩服那位兄弟的记忆力。可是我这边有更直接的方法希望能对那些入门级别的人一点帮助! 在hibernate中,每个数据表对应的其实是一个实体类,每个实体类有一个对应的hbm.xml 配置文件和你匹配,myeclipse中其实有个MyEclipse Database Explorer视图,它提供了myeclipse与数据库直接连接的内置窗口,并且通过此窗口可以生成hibernate的mapping文件。 1.在项目上点击右键选择MyEclipse选项,为应用增加Hibernate特性. 2.在出现的配置窗口中,选中“Add Hibernate 2.1 libraries to project?”,然后设定存放Hibernate 库文件的目录为:/WEB-INF/lib 目录,默认会选择创建一个新的Hibernate配置文件hibernate.cfg.xml。 3.点击下一步,进入Hibernate数据库连接配置界面,在Connection Profile选项中直接选择在MyEclipse Database Explorer中配置的vipdata选项,然后就会自动生成其他的配置,可以选择“Copy JDBC Driver and add to classpath”,这样就会将JDBC驱动拷贝到WEB-INF/lib目录中。: 4.点击下一步,来创建Hibernate的SessionFactory类,这是一个简单的集中管理Hibernate 会话的工厂类,填写类的全名称。 5.点击完成,然后MyEclipse就会将Hibernate相关的jar包拷贝到lib目录下,同时会生成Hibernate的配置文件:hibernate.cfg.xml,和SessionFactory类。 现在要利用MyEclipse Database Explorer视图中的工具来生成Hibernate的映射文件。切换到MyEclipse Database Explorer视图,在表vipdata上点击右键,选择Create Hibernate Mapping.

Hibernate(V)——一对多与多对多关联关系映射(xml与注解)总结

Hibernate(6)——一对多和多对多关联关系映射(xml和注解)总结 涉及的知识点总结如下: ?One to Many 映射关系 o多对一单向外键关联(XML/Annotation) o一对多单向外键关联(XML/Annotation) o懒加载和积极加载 o一对多双向外键关联(XML/Annotation) ?Many to Many 映射关系 o多对多单向外键关联(XML/Annotation) o多对多双向外键关联(XML/Annotation) o set的inverse元素详解 ?问题小结 ?关联关系的优缺点 多对一单向外键关联关系 注意多对一关联是多方持有一方的引用。看一个例子,去淘宝购物,那么一个淘宝用户可以对应多个购物订单,如图所示: 多的一方是Orders,持有一方的引用,也就是Users,而在Users中无需作任何定义,从订单到用户的关系是单向多对一关联。对应数据库就是: 还有比如说学生和班级的关系,多个学生可以属于同一个班级,这就是从学生到班级也是典型的单向多对一关系,看代码实现: 基于注解的多对一单向外键关联: 单向多对一关联中,多方需要持有一方的引用,那么多方(学生类)需要额外配置,需要对持有的一方引用使用注解@ManyToOne (cascade={CascadeType.ALL}, fetch=FetchType.EAGER),设置为级联操作和饥渴的抓取策略,@JoinColumn(name="cid"),而一方(教室类)无需做任何多方的定义。 注意;多方必须保留一个不带参数的构造器! import ; import ; import ; //班级类,在多对一关系中属于一的方,不持有其他多余的配置,反而是被多方持有

如何根据hibernate的实体类和实体类配置文件生成数据库的表

网络地址: 主题:如何根据hibernate的实体类和实体类配置文件生成数据库的表 内容部分 [c-sharp]view plaincopyprint? 1. 4. 5. 6. jdbc:mysql://12 7.0.0.1/lianxi 7. com.mysql.jdbc.Driver 8. root 9. root 10. org.hibernate.dialect.MySQLDialect 11. true 12. update 13. 14. 15. 16. 17. 18. 19.

hibernate配置数据库连接池的三种方法

?数据库连接池的概念(是什么,做什么用的,有什么好处) ?首先,我们还是老套的讲讲连接池的基本概念,概念理解清楚了,我们也知道后面是怎么回事了。?以前我们程序连接数据库的时候,每一次连接数据库都要一个连接,用完后再释放。如果频繁的数据库操作,就会导致性能很低。连接池的出现,为开发过程提供了一个很好的管理平台。当程序中需要建立数据库连接时,只须从内存中取一个来用而不用新建。同样,使用完毕后,只需放回内存即可。而连接的建立、断开都有连接池自身来管理。同时,我们还可以通过设置连接池的参数来控制连接池中的连接数、每个连接的最大使用次数等等。通过使用连接池,将大大提高程序效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。 ?而Hibernate的出现把连接池的使用引入了一个新的利用方式,让你充分享受配置化给开发带来的便利。 1 C3P0 (以验证可用) 只需在hibernate.cfg.xml中加入 omdssd_admin omdssd_hskj jdbc:oracle:thin:@10.142.1.138:1521:omds oracle.jdbc.driver.OracleDriver org.hibernate.dialect.Oracle9Dialect true true oracle10g_112 org.hibernate.connection.C3P0ConnectionProvider 5 //连接池中数据库连接的最小数目 30 //连接池中数据库连接的最大数目 1800 //设定数据库连接的过期时间,以秒为单位 50 //可以被缓存的PreparedStatement实例的最大数目。缓存适量的PreparedStatement实例,能够大大提高Hibernate的性能。 120//在使数据库连接自动生效之前处于空闲状态的时间,以秒为单位

Eclipse下配置和使用Hibernate Tools

Eclipse下配置和使用Hibernate Tools 文章分类:Web前端关键字: hibernate tools eclipse 插件配置 Hibernate Tools可以通过访问已经建立好的数据库以反向工程方式生成POJO文件。 今天就来说一下如何使用Hibernate Tools来生成POJO。 1、首先,要去Hibernate的网站下载这个工具包。一个大约14M的ZIP压缩文件。 https://www.doczj.com/doc/9c16796814.html,/sourceforge/jboss/HibernateTools-3.2.4.Beta1-R200810311334.zip 2、解压缩下载好的文件,释放出features和plugins这两个文件夹和其中的内容。完成后将这两个文件夹复制到Eclipse的目录下(这两个文件夹在Eclipse中是默认存在的,直接复制就行了)。 3、到这步为止HibernateTools的安装就算结束了,下面开始配置和具体使用。一开始选择工程下的SRC 目录,然后右键New->Other->Hibernate->Hibernate Configuration File(cfg.xml),在弹出的窗口中选择Next ,进入到下面的选项中。 注意,这个地方有几项是一定要填写的。他们分别是Database dialect(数据库方言)、Driver class(数据库驱动)、Connection URL(链接字符串)以及Username和Password(访问数据库的用户名和密码)。

上图图中使用的是MySQL5数据库的配置,vane是我机器中已经创建好的数据库。使用其他数据库的时候会略有不同。 填好之后选择Finish。 4、选择Eclipse的下拉菜单Window->Show View->Other->Hibernate->Hibernate Configurations,现在就可以查看Hibernate的配置窗口了。在窗口中单击右键Add Configuration,出现Edit Configuration窗口。 这里需要给Configuration起个名字,然后在Project项目中选择当前工程。 单击OK。 5、如果上一步的配置是正确的,那么在Hibernate的配置窗口中就可以看见Hibernate访问数据库得到的数据信息。

hibernate关系映射注解配置

1. Hibernate Annotation关系映射有下面几种类型: 1)一对一外键关联映射(单向) 2)一对一外键关联映射(双向) 3)一对一主键关联映射(不重要,有需要看下文档即可) 在实际中很少用,使用注解@PrimaryKeyJoinColumn 意思是说,我的主键去参考另外一张表中的主键,作为我的主键,但是在我测试使用 注解一对一主键关联映射,在生成表的时候,数据库中并没有生成关联,使用XML 映射可以生成。Annotation注解一对一主键关联映,有些bug。不过没空去研究它。 因为在实际开发中一对一很少用。在实际开发中我机会没有用过,主键关联就更少了 4)多对一关联映射(单向) 5)一对多关联映射(单向) 6)一对多关联映射(双向) 7)多对多关联映射(单向) 8)多对多关联映射(双向) 2.介绍各种映射用法 1)一对一外键关联映射(单向)Husband ---> Wife public class Husband{ private Wife wife; @OneToOne(cascade=CascadeType.ALL) @JoinColumn(name="wife_id",unique=true) public Wife getWife(){…} … } public class Wife{ } 一对一外键关联,使用@OneToOne,并设置了级联操作 @JoinColum设置了外键的名称为wife_id(数据库字段名),如果不设置,则默认为另一类的属性名+ _id 外键的值是唯一的(unique),不可重复,与另一类的主键一致 2)一对一外键关联映射(双向)Husband <---> Wife public class Husband{ private Wife wife; @OneToOne(cascade=CascadeType.ALL) @JoinColumn(name="wife_id",unique=true) public Wife getWife(){…} ... } public class Wife{ private Husband husband; @OneToOne(mappedBy="wife",cascade=CascadeType.ALL) public Husband getHusband(){…} ... } 一对一双向关联关系,使用@OneToOne 注意:需要加上mappedBy="wife",如果不加上的话,Wife也会生成一个外键(husband_id)。mappedby="wife"需要指向与他关联对象的一个属性(即Husband类里面的wife属性),这里的会在Husband表里面生成个外键wife_id字段,而Wife表里则不会生成。这里Husband作为维护端即主

有关Hibernate3.3.2与3.6.10与4.1.10测试

有关Hibernate3.3.2与4.1.10测试 编辑人:星辰樱 1、建立起测试环境 首先导入测试所必需的JAR,必需的JAR包括(Hibernate3和lib\required下的所有JAR,同时还有导入相应版本slf4j-nop.jar。Hibernate3.3.2所对应的是slf4j-nop-1.5.8.jar。Hibernate3.6.10对应的是slf4j-nop-1.6.1.jar。Hibernate4只需要导入lib\required下所有的JAR 就可以了。)我们可以分别自定义三个版本的Hibernate JAR库,如图 第二个把JAR库导入项目,选择自定义的JAR库

最后导入数据库的JAR库。 2、编写测试代码 编写测试代码可以根据Hibernate的说明文档写非常的容易,要注意的是Hibernate的说明文档目前只有英文的。 1.首先我们在数据库中建立一张测试用的表,最好是简单,有主键。 2.建立一个实体类与表中的字段最好是相同,不同也行。

3.创建配置文件(hibernate.cfg.xml). 4.创建实体类与表的映射文件与实体类最好放在一起(UserBean.hbm.xml)。

5.编写测试类(Test)。 这是对Hibernate3的常规测试类。 这是对Hibernate4.1.10编写的测试类

为什么要分两个测试类,其实对Hibernate4也可以用Hibernate的测试类,当我们用Hibernate 的JAR库时,你们会看见有一句代码被线上了删除线,加上了删除线表示这个方法是过时 了的,所以最好是采用新的方法。

MyEclipse中配置Hibernate连接Oracle

1.Window-Preferences-MyEclipse-Database Explorer-Database Drivers-DB Browser 2.在DB Browser窗口中New... (新建Database Driver) Driver name:oracle9 Connection URL:jdbc:oracle:thin:@localhost:1521:HYGJ User name:scott Password:tiger Driver JARs:classes12.jar 此时在DB Browser窗口就会出现你刚新建的驱动oracle9 3. 新建WEB工程:HibernateDemo 4.右键-MyEclipse-Add Hibernate Capabilities... Hibernate 3.1 保持默认就可以--Next--Next-- DataSource: Use JDBC Driver DB Driver:会提供可选择使用的驱动,如刚建好的驱动:oracle9 以下的信息你一看会填写o(∩_∩)o... --Next-- Create SessionFactory class?不选中 --Finish 5.hibernate.cfg.xml中的部分代码如下: ... scott jdbc:oracle:thin:@localhost:1521:HYGJ org.hibernate.dialect.Oracle9Dialect oracle9 oracle.jdbc.driver.OracleDriver tiger 在数据库中创建表: create table login( username varchar(50) not null primary key, password varchar(20) not null );

利用轻量对象关系映射技术Hibernate提高开发效率

利用轻量对象关系映射技术Hibernate提高开发效率 Enhancing Development Efficiency with Hibernate a Lightweight Object/Relational Mapping Technology 谢挺 周维民 (上海大学机电工程与自动化学院,上海 200072) 摘 要 Hibernate是一种轻量对象关系映射技术。文章通过实例,介绍了Hibernate的一些关键特性,并阐述了该技术的一些局限性。 关键词 Hibernate 对象关系映射企业级JavaBeans 持久化 Abstract Hibernate is a lightweight Object/Relational Mapping(ORM) technology. Some key features of Hibernate are illustrated, and some limits of this technology are expounded. Keywords Hibernate Object/Relational Mapping (ORM) EJB Permanence 0 引言 随着internet的发展,应用服务程序已经从集中式、C/S模式过渡到B/S、分布式模式;无论是用户或是供应商都迫切希望缩短开发周期、提高开发效率,Hibernate应运而生。 1 Hibernate简介 Hibernate是一个面向Java环境的对象/关系数据库映射工具。对象/关系数据库映射(Object/Relational Mapping , ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型中去。 Hibernate不仅提高Java类到数据库的映射,还提供数据查询和获取数据的方法。Hibernate在英语中的意思是“冬眠”,顾名思义它使得商务逻辑的开发和数据库最大程度地分离,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。Hibernate的目标是解放开发者通常与数据持久化相关的编程任务的95%。对于那些在基于Java的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,Hibernate是很有用的。 图1是Hibernate的体系结构图,从图中可以Array看到,系统为3层B/S模式,应用程序在客户端运 行将持久化的对象交由Hibernate。Hibernate通过 properties属性设置和XML Mapping实现商务逻 辑,调用和存储低层数据库后将返回的结果送给 客户端。 Hibernate对每一种数据库都有对应的 Dialect进行操作优化,从而提高它在各种情况 下的效率。目前,它的版本为3.0、支持的数据 库有Oracle、DB2、MySQL、PostgreSQL、Sybase,Interbase、Pointbase、Microsoft SQL Server、

hibernate教程

一、使用Hibernate的3个准备和7个步骤 准备1:导入Hibernate库(jar包); 准备2:添加配置文件-Hibernate.cfg.xml jdbc:microsoft:sqlserver://localhost:1433;Database=zf sa pwd com.microsoft.jdbc.sqlserver.SQLServerDriver #配置数据库链接 org.hibernate.dialect.SQLServerDialect #数据库方言 true #设置运行时是否在控制台显示SQL语句 #映射文件,可以有多个 准备3:添加实体类和映射文件(User.hbm.xml) 类: public class User implements java.io.Serializable { //要实现Serializable private Integer uid; private String uname; private String upass; public User(){// 要有默认构造方法 } // Getter and setter } User.hbm.xml: 列名

相关主题
文本预览
相关文档 最新文档