如果我们需要修改一条记录,怎么做呢?hibernate提供了session.update()方法。
在做修改的时候,有两种方式,一种是手动创建对象的方式,第二种是先查询再修改的方式。
1、手动创建对象的方式
同Hibernate学习-03入门案例中的项目。数据库中原始数据如下:
修改测试类,添加如下所示的测试方法:
@Test
//修改一条记录
public void demo4(){
Configuration configuration = new Configuration().configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
Customer customer=new Customer();
customer.setId(2);
customer.setName("卢俊义");
session.update(customer);
tx.commit();
session.close();
sessionFactory.close();
}运行测试:
再看数据库:
第二条记录的age字段变成了0,因为咱们没对它进行设置,所以这个属性的默认值就被存进去了。因此,这种方式来更新显然是不好的,因为即使你只修改某条记录的一个字段,也必须对其他字段全部set一遍,太繁琐。
2、先查询再修改的方式(推荐方式)
还原数据库数据到如下状态:
修改测试类,添加如下的测试方法:
@Test
//修改一条记录,先查询再修改
public void demo5(){
Configuration configuration = new Configuration().configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
Customer customer=(Customer)session.get(Customer.class, 2);
customer.setName("卢俊义");
session.update(customer);
tx.commit();
session.close();
sessionFactory.close();
}运行测试:
看看数据库:
添加成功。
本文介绍了使用Hibernate框架更新数据库记录的方法,包括手动创建对象和先查询再修改两种方式,并对比了它们的特点。
1858

被折叠的 条评论
为什么被折叠?



