`
pengjianbo1
  • 浏览: 232413 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

hibernate配置详解<转>

阅读更多
<meta>元素的属性 

属性 描述 

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方法名 

<column>元素属性 

name 设定字段名字 

length 设定字段长度 

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

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

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

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

foreign-key 为外键约束命名,在<many-to-many><one-to-one><key><many-to-one>元素中包含 

foreign-key属性,在双向关联中,inverse属性为true的一端不能设置foreign-key 

sql-type 设定字段sql类型 

check 设定sql检查约束 

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

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

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

<class>元素的mutable属性 如为false,等价于所有字段的update属性为false,默认为true 

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

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

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

<class>元素的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程序负责生成. 

<hibernate-mapping> 

<class name="项目路径" table="库中对应表名" schema="dbo" catalog="netoa"> 

<meta attribute="class-description">指定描述类的javaDoc</meta> 

<meta attribute="class-scope">指名类的修饰类型</meta> 

<meta attribute="extends">指定继承类</meta> 

<id name="bgrkbh" type="long"> 

<column name="BGRKBH" precision="15" scale="0" sql-type="库中类型" check="BGRKBH>10"/> 

<meta attribute="scope-set">指定类,类属性的getxxx(),setxxx()方法的修饰符 

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

</meta> 

<generator class="assigned" /> 

</id> 

<property name="Class.fileName" type="long"> 

<column name="YSLX" precision="精度" scale="刻度" not-null="默认false" sql-type="数据库中类型"/> 

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

<meta attribute="field-description">指定描述类的javaDoc</meta> 

指定描述类属性的javaDoc 

</property> 

</class> 

</hibernate-mapping> 

注意: 

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

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

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

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

FlushMode.AUTO            清理                               清理                              清理 

FlushMode.COMMIT       不清理                            清理                              清理 

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.commit(); 

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                      VARCHAR 

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
 

 

分享到:
评论

相关推荐

    ( maven中整合Spring+hibernate的pom.xml文件的配置.doc )

    ### Maven中整合Spring与Hibernate的Pom.xml配置详解 在Java Web开发中,Spring框架以其强大的功能和灵活性被广泛应用于企业级应用的构建之中。而Hibernate作为一种流行的对象关系映射(ORM)工具,能有效简化...

    JSF+Spring+Hibernate 配置

    **JSF+Spring+Hibernate 配置详解** JavaServer Faces (JSF)、Spring 和 Hibernate 是 Java 开发中常用的三个框架,它们各自负责 Web 应用的不同层面:JSF 处理用户界面,Spring 提供依赖注入和业务层管理,而 ...

    Spring4 + Hibernate5详细maven构建.docx

    - **Hibernate版本**: `&lt;hibernate.version&gt;5.0.8.Final&lt;/hibernate.version&gt;` 指定了Hibernate ORM的具体版本号。 **1.2 Spring核心依赖** ```xml &lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;/groupId&gt; ...

    java文集

    &lt;br&gt;DFS文件读写&lt;br&gt;网络爬虫之Spider&lt;br&gt;Java正则表达式的总结关键词: Java正则表达式 &lt;br&gt;批量上传--采集 (多个文件夹)&lt;br&gt;The Agile Way&lt;br&gt;hibernate mapping文件中的标记详解:关系标记&lt;br&gt;ANT 安装使用及...

    Hibernate 配置详解 (一)

    ### Hibernate配置详解(一):理解配置文件的重要性与细节 #### 概述 在Java持久化框架中,Hibernate因其灵活性和强大的ORM(对象关系映射)能力而备受开发者青睐。然而,要想充分发挥Hibernate的潜力,深入理解...

    hibernate配置文件详解

    Hibernate 配置文件详解 Hibernate 是一个流行的 ORM(Object-Relational Mapping)框架,用于简化 Java 应用程序中的数据库交互。 Hibernate 的配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。下面...

    Hibernate配置文件中映射元素详解

    【Hibernate配置文件中映射元素详解】 在对象关系映射(ORM)框架Hibernate中,对象与数据库表之间的关联是通过一个XML配置文件来定义的。这个XML文件包含了映射元素,用于描述Java类如何转化为数据库中的表。映射...

    hibernate和spring MVC配置整合

    **hibernate与Spring MVC配置整合详解** 在Java Web开发中,Spring MVC作为控制器层,负责处理用户请求,而Hibernate作为持久化框架,用于管理数据库操作。将这两者结合使用,可以实现MVC架构的高效数据访问。下面...

    Hibernate使用xdoclet生成映射文件和sql语句

    《使用Hibernate和XDoclet生成映射文件与SQL语句详解》 在Java开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。然而,为了实现对象与数据库表之间的映射,我们需要编写XML映射...

    maven整合

    ### Maven整合SSH框架详解 #### 一、引言 在软件开发过程中,为了提高开发效率、维护代码质量以及实现项目的标准化管理,Maven作为一种项目构建工具被广泛应用。本篇文章主要介绍如何利用Maven来整合SSH(Spring +...

    hibernate--5.Hibernate配置文件详解

    标题"hibernate--5.Hibernate配置文件详解"暗示我们将探讨的是Hibernate 5版本的配置细节。这个版本引入了一些新特性和改进,同时也保持了对前一版本的兼容性。配置文件是Hibernate的核心部分,它定义了与数据库的...

    hibernate配置二三级缓存

    ### Hibernate配置二级与三级缓存详解 在Java开发领域中,Hibernate作为一种流行的ORM(对象关系映射)框架,被广泛应用于数据库操作。为了提高应用程序的性能,Hibernate支持多种级别的缓存机制,其中最为常见的是...

    spring +hibernate 详解与配置(附图)

    ### Spring + Hibernate 详解与配置 #### Spring框架概述 Spring框架是一个开源的、轻量级的应用框架,旨在简化企业级应用开发。它提供了一个全面的编程模型,支持从Web到数据访问等各种应用需求。Spring的核心...

    hibernate--5.Hibernate配置文件详解-2

    标题"hibernate--5.Hibernate配置文件详解-2"暗示我们将继续上一节的内容,进一步深入理解Hibernate配置文件的各个方面。通常,Hibernate的配置文件以`hibernate.cfg.xml`的形式存在,它是项目初始化和连接数据库的...

    Hibernate 配置详解 (二)

    ### Hibernate配置详解(二)——深入理解`.hbm.xml`文件与实体关联 #### 引言 在前文《Hibernate 配置详解》中,我们已经初步探讨了Hibernate框架的基本配置,包括`hibernate.cfg.xml`文件的重要性及其在...

    hibernate注解

    ### Hibernate注解详解:提升Java持久化操作效率与灵活性 #### Hibernate注解概述 Hibernate作为一款优秀的Java持久层框架,提供了强大的ORM(Object-Relational Mapping)功能,它能够将Java对象模型映射到关系...

    Hibernate配置各种数据源详解

    Hibernate配置各种数据源 &lt;hibernate-configuration&gt; &lt;session-factory&gt; &lt;!– 各属性的配置–&gt; &lt;!—为true表示将Hibernate发送给数据库的sql显示出来 –&gt; &lt;property name=”show_sql”&gt;true&lt;/property&gt; &lt;!– ...

    使用Maven搭建S2SH工程详解一:使用Maven创建struts2工程

    在`&lt;build&gt;`标签内添加Jetty插件配置: ```xml &lt;build&gt; &lt;defaultGoal&gt;install&lt;/defaultGoal&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;groupId&gt;org.mortbay.jetty&lt;/groupId&gt; &lt;version&gt;6.1.22&lt;/version&gt; &lt;artifactId&gt;maven-jetty...

    hibernate 连接池配置详解

    ### Hibernate 连接池配置详解 #### 一、概述 在使用Hibernate进行数据库操作时,合理配置连接池是非常重要的一步。连接池可以帮助我们更高效地管理数据库连接资源,避免频繁创建与销毁数据库连接带来的性能开销。...

Global site tag (gtag.js) - Google Analytics