天天看点

day35 02-Hibernate持久化对象状态及状态转换

day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换

hibernate内置有一个c3p0,不用引入c3p0的jar包也行。

现在其实可以不用去创建表和实体类。因为hibernate可以自动帮我们生成。只要把映射建好了它就可以自动帮我们生成。

创建实体类和对应的映射。

day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换

一运行java项目hibernate3_day02的工具类/hibernate3_day02/src/cn/itcast/utils/HibernateUtils.java就可以生成表。前提是先建立数据库hibernate3_day02。必须得有数据库才行。

day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换

find()不用记,是JPA提供的接口中的一个方法。那么hibernate肯定得有它的一个实现。get()、load()、find()、iterate()都是做查询的。

虽然这个状态图是官方给出来的,但是并不是十分的标准。有很多人认为,delete(book)之后也不是瞬时态的。delete(book)之后这个对象不是马上销毁的,只不过对应的数据库中的记录没有了。还有人认为,没有OID了,但是它还没有解除与session的关系。

day35 02-Hibernate持久化对象状态及状态转换

官方给出的状态图不建议你直接获取脱管态对象。

day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换
day35 02-Hibernate持久化对象状态及状态转换