对象持续化的理解
前期javase对类实行Serivalizable 接口,由很大的以后,说是他是一种能力,
但是这里学历hibernate对象持续化后,好像有一点理解,
先来说说 如何对象持续化,怕以后忘记
Configuration cfg=new Configuration().configure(); // 默认加载hibernate.cfg.xml 文件
SessionFactory sf=cfg.buildSessionFactory(); // 由于数据众多,由工厂类获取连接
Session sess=sf.OpenSession() // 事物打开
Transaction tx=session.beginTransaction(); // 原子性操作打开
User user=new User(); // POJO 类
user.setName("echo");
user.setPass("echo");
sess.save(user) // 将对象保存为持久性对象
sess.close();
sf.close(); // 连接关闭
Session 通过save() 将user 持久性对象
Serializable save(Object obj) 持久化,对象属性保存到数据库
void persist(Object obj) 持久化,对象属性保存到数据库
Serializable save(Object obj,Object PK) 对象属性保存到数据库,指定主键
void persist(Object obj,Object Pk) 持久化,对象属性保存到数据库,指定主键
前期javase对类实行Serivalizable 接口,由很大的以后,说是他是一种能力,
但是这里学历hibernate对象持续化后,好像有一点理解,
先来说说 如何对象持续化,怕以后忘记
Configuration cfg=new Configuration().configure(); // 默认加载hibernate.cfg.xml 文件
SessionFactory sf=cfg.buildSessionFactory(); // 由于数据众多,由工厂类获取连接
Session sess=sf.OpenSession() // 事物打开
Transaction tx=session.beginTransaction(); // 原子性操作打开
User user=new User(); // POJO 类
user.setName("echo");
user.setPass("echo");
sess.save(user) // 将对象保存为持久性对象
sess.close();
sf.close(); // 连接关闭
Session 通过save() 将user 持久性对象
Serializable save(Object obj) 持久化,对象属性保存到数据库
void persist(Object obj) 持久化,对象属性保存到数据库
Serializable save(Object obj,Object PK) 对象属性保存到数据库,指定主键
void persist(Object obj,Object Pk) 持久化,对象属性保存到数据库,指定主键
看到Serializable 我就哈哈了,持续化,就是把对象保存下来,可以离线用(这是我个人的理解,希望你们去百度百度)
通过主键加载实体
User user=sess.load(User.class,pk);
user.setName("if");
sess.flush();
数据更新
load 加载实体,有延迟但是get没有,get会立即访问数据库,load返回没有初始化的对象
更新脱管实体
当sess关闭后,对象就处于脱管状态
如果要重新接管,
update() //再次将对象持续化
merge() //方法返回的副本是持续化的
updateOrSave() //不清楚是否对象持续化过