hibernate总结

hibernate总结
hibernate总结

1:

ORM主要解决的问题是对象--关系的映射。一班情况下,一个持久化类和一个表对应,类的每个实例对应表中的一条记录。

2:

常用的5个核心接口介绍

(1)Configuration接口,用于配置并根启动Hibernate。

(2)SessionFactory接口,一个SessionFactory实例对应一个数据库存储源,它是线程安全的,重量级的,之所以称

它为重量级,是因为启动它要一个很大的缓存,当然,用户可以为它配置二级缓存

(3)Session接口,不是线程安全的,Session实例是轻量级的,它有一个第一级缓存

(4)Transaction接口,是Hibernate的数据库事务接口,

(5)Query和Criteria接口,它们是Hibernate的查询接口,Query实例包装了一个HQL查询词句,HQL是面象对象的,

它引用类名和类的属性,而不是表名和表的字段

3:

持久化类的默认规则

(1)对属性的操作,一这要用setXXX()和getXXX()这样的命名,如果是boolean类型,则可以用isXXX()命名

(2)最好实现java.io.Serialiizable接口,

(3)必须提供一个不带参数的,最好是public或protected的默认构造方法

4:

数据类型的映射过程是,先参照表字段类型,再比较java类型,最后由上两种来决定hibernate数据类型

5:

元素的常用属性

(1)name,指定的是java类中的属性名

(2)column,与java类对应的数据库表名

(3)not null,java类的某个属性是否可为空,在应用应用层检查,即持久化前

(4)type,Hibernate中间件的过度型数据类型,

(5)access,设定对于java类属性,是用getXXX()和setXXX()方法(property),还是直接访问(field)

(6)dynamic,设定hibernate生成sql语句的方式,在update,insert时,只对有修改过的字段进行CRUD操作

6:

我们可以自己对getXXX()和setXXX()方法加入逻辑,这是很灵活的

7:

只要在xxx.hbm.xml中映射了数据库表中的字断,就可以用HQL语句检索

8:

Session.close()---清空缓存

Session.flush()---清理缓存,对比数据库中表的记录,并执行SQL语句,但不会提交事务

https://www.360docs.net/doc/1c5598460.html,mit()---清理,执行SQL,并提交事务

9:

Session.load()---当数据库表中没有该记录时,会抛出异常,并受到类级别加载设置的影响,如延迟加载

Session.get()---当库中无记录时,返回null

Session.find()---将被淘汰,也是不推荐使用的方法,用query代替

10:

的inverse属性

比如在一(user)对多(book)的关联中,会有配置,当设置inverse=true 时,当hibernate检查到user和book的状态都发生变化时,如执行了Book.set(User),则仅按照book对象状态的变化来同步更新数据库,只生成一条SQL语句来执行,如果不设置inverse=true,则会多执行一次

11:

默认的table和column是与name相同的,区分大小写

---------------------------------------------------------------------------------------------------------------------------

下面开始介绍各种映射策略

1:

映射自然主键表,代理主键表,复合主键表,这种映射比较简单,也比较常用

2:

映射单向一对多,和多对一关联

3:

映射双向一对多关联(也叫做双向多对一关联)

4:

怎样提高Hibernate的综合性能

(1)关联级别延迟加载首选设置为lazy=false

(2)最好用多对一单向关联,可以选择lazy=false或

lazy=true

(3)在一对多关联中,首选设置为lazy=true

(4)关联类属性首选设置为cascade=save-update,或cascade=all(将删除一切关联的数据)

(5)可以设置类级别和关联级别的批量延迟检索和立即检索,batch-size,可以减少和简化Hibernate生成的SQL语句条

数,以提高查询性能

(6)outer-join属性在中默认为true,一般不用设置,多表outer join会严重影响数据库性能

相关主题
相关文档
最新文档