一.实体类对象状态(概念)
1.实体类状态有三种
- 瞬时态:对象里面没有id值,对象与session没有关联
- 持久态:对象里面有id值,对象与session关联
- 托管态:对象有id值,对象与session没有关系
2.演示操作实体类对象的方法
saveOrUpdate方法:实现添加,实现修改
我们先对这三种状态一一做实验吧
瞬时态
public void fun4() {
SessionFactory sessionFactory=hibernateUtils.getSessionFactory();
Session session=sessionFactory.openSession();
Transaction tx=session.beginTransaction();
User user=new User();
user.setUsername("糖糖");
user.setPassword("123456789");
session.saveOrUpdate(user);
tx.commit();
session.close();
sessionFactory.close();
}
显然做的是添加操作
持久态
public void fun4() {
SessionFactory sessionFactory=hibernateUtils.getSessionFactory();
Session session=sessionFactory.openSession();
Transaction tx=session.beginTransaction();
User user=session.get(User.class,5);
user.setUsername("苏苏");
session.saveOrUpdate(user);
tx.commit();
session.close();
sessionFactory.close();
}
显然是修改操作
托管态
public void fun6() {
SessionFactory sessionFactory=hibernateUtils.getSessionFactory();
Session session=sessionFactory.openSession();
Transaction tx=session.beginTransaction();
User user=new User();
user.setUid(5);
user.setUsername("糖糖");
user.setPassword("123456789");
session.saveOrUpdate(user);
tx.commit();
session.close();
sessionFactory.close();
}
显然做的也是修改操作
总结:
- 实体类只是瞬时态的时候,才做添加操作
- 实体类是持久态和托管态的时候,都做的是修改操作