hibernate部分

hibernate 五大接口:

Configuration :加载hibernate 配置文件,默认在src 下的hibernate.cfg.xml

SessionFactory :创建Session 的Session工厂

Session :与数据库通信用的,开启事务

Query:通过Session.createQuery()创建

Transcation :事务:session.beginTransaction() session,getTranscation().commit()

get和load 的区别:

load为延迟加载:返回的是一个只有id属性的代理对象(只有用到的时候才会执行sql 语句,如果找不到会报ObjectNotFoundException,建议是确定有这个对象的时候用)

get是立即加载:执行时立即向数据库发送sql 语句,如果找不到,返回null

hibernate 主键生成策略

1,uuid:生成一个32位,不会重复的主键

2,native:使用本地生产策略

3、sequence(oracle)

4、increment :主键自增(先查询到主键最大值,之后加1)

5、Assigned(指派):不怎么熟悉,没用过

hibernate对象的三种状态及状态转换

1.Transient(临时对象):当我们程序new 一个对象,但是并没有保持的时候,为临时态

2.Persistent(持久态):这时候的对象是与数据库的某条记录有着对应关系,

3.Detached(游离态/托管):当执行了session.close()方法后,对象处于游离态了。

状态转换:

在游离态的时候,通过调用session.update(),对象进入持久态,在持久态,执行delete的时候变为临时态,为初始化对象之前,调用get.load find iterate 之后直接进入持久态。

数据库和session 中都没有的是临时态,数据库有,但是session 中不存在这是游离态。俩个里面都有是持久态

hibernate 级联(cascade)

1.none

2.save-update

3.all

4.delete


猜你喜欢

转载自blog.csdn.net/wlittlefive/article/details/52723265
今日推荐