`
- 浏览:
132382 次
- 性别:
- 来自:
福建
-
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
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Hibernate.jar包,Hibernate可以应用在任何使用JDBC的场合,包含 hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-...
"Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...
hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-4.1.12.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar ...
项目原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6 二、 项目目的: 整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + ...
【hibernate学习资料大全】 Hibernate 是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。这个压缩包包含了丰富的Hibernate学习资源,旨在帮助开发者深入理解和熟练掌握这一强大的...
《Hibernate-Extensions全面指南》 Hibernate,作为Java领域中的一款著名对象关系映射(ORM)框架,极大地简化了数据库操作。然而,为了满足更复杂的业务需求,Hibernate还提供了丰富的扩展功能,这就是我们今天要...
【描述】中的"hibernate的jar包"指的是Hibernate框架的运行库文件,这些JAR文件包含了Hibernate的所有核心API、实现和依赖库,如Hibernate Commons Annotations、Hibernate EntityManager、Hibernate Core等。...
Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库,极大地简化了数据访问层的编程工作。这个压缩包包含了Hibernate的基础jar包,这些jar文件是开发Hibernate应用所...
HibernateTools是Java开发人员在使用Hibernate ORM框架时的有力辅助工具集,主要目的是为了提高开发效率,简化数据库操作。在HibernateTools 3.2.4版本中,它包含了一系列的特性与插件,以支持更便捷地进行对象关系...
Hibernate3 是一个强大的Java持久化框架,它允许开发者将数据库操作与业务逻辑解耦,使得应用程序的开发更为简便。这个“hibernate3全部jar包:hibernate3.jar.zip”包含了所有必要的库文件,方便用户一次性下载并...
Hibernate3是一个广泛使用的Java对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作,极大地简化了Java应用程序与数据库之间的交互。在这个"Hibernate3的依赖包"中,包含了运行Hibernate3应用...
标题中的“hibernate和MySQL的jar”指的是Hibernate ORM框架与MySQL数据库之间的连接库。Hibernate是一种流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL...
在Java开发环境中,与KingbaseV8数据库进行交互通常会用到Hibernate框架和JDBC驱动。 Hibernate是一个优秀的对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作,通过将Java对象与数据库表进行映射,...
标题"Hibernate 中文api 等学习资料"暗示了这是一组针对Hibernate ORM框架的中文学习资源,包括API文档和其他指南,旨在帮助用户更好地理解和使用Hibernate。 描述中的"hibernate orm框架api中文文档,学习资料,...
包含hibernate所有所需jar包还有一些其他包日志包、jpa支持包等: 列如:hibernate-core-5.1.0.Final.jar hibernate-ehcache-5.1.0.Final.jar hibernate-entitymanager-5.1.0.Final.jar hibernate-envers-5.1.0....
Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使开发者可以更加专注于业务逻辑而不是数据访问层的实现。本压缩包提供的是Hibernate入门所需的jar包,包括了Hibernate的核心库以及与之...
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端...
Hibernate3 是一个非常重要的Java持久化框架,它允许开发者将对象模型与数据库关系模型进行映射,从而简化了数据存取的过程。这个压缩包“hibernate3必要jar包”显然是针对Hibernate3版本的,已经去除了冗余的库文件...
Hibernate 是一个著名的开源对象关系映射(ORM)框架,它为Java开发者提供了便捷的数据持久化方式,使得在Java应用程序中操作数据库变得更加简单。这个“hibernate_3.2官方开发包”包含了所有你需要开发基于...
Hibernate是一款强大的Java持久化框架,它为Java开发者提供了一种对象关系映射工具,使得开发者可以使用面向对象的方式来操作数据库,极大地简化了数据库操作。在Java应用中,尤其是在企业级应用开发中,Hibernate是...