实体类对象状态(概念)
1 实体类状态有三种
(1)瞬时态,对象里面没有id值,对象与session没有关联
User user=new User();
user.setUsername("小马哥");
user.setPassword("520");
user.setAddress("美国");
(2)持久态:对象里面有id值,对象与session有关联
User user=session.get(User.class, 1);
(3)托管态:对象里面有id值,但是对象与session没有关联
//User user=new User();
//user.setUid(3);
2 演示操作
(1)saveOrUpdate方法:实现添加、实现修改(重点看注释)
@Test
public void testAdd() {
SessionFactory sessionFactory=HibernateUtils.getSessionFactory();
Session session=sessionFactory.openSession();
Transaction tx=session.beginTransaction();
User user=new User();
user.setUsername("jack");
user.setPassword("520");user.setAddress("朝鲜");
// 注释:实体类属性是顺时态,则为添加操作
session.saveOrUpdate(user);
tx.commit();
session.close();
sessionFactory.close();
}
@Test
public void testAdd() {
SessionFactory sessionFactory=HibernateUtils.getSessionFactory();
Session session=sessionFactory.openSession();
Transaction tx=session.beginTransaction();
User user=new User();
user.setUsername("jack");
user.setPassword("520");user.setAddress("朝鲜");*/
User user=new User(); //实体类属性是托管态,则为修改操作
user.setUid(3);
user.setUsername("小曼曼");
user.setPassword("1314");user.setAddress("艾瑞巴尼亚");
session.saveOrUpdate(user);
tx.commit();
session.close();
sessionFactory.close();
}
@Test
public void testAdd() {
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();
}