Hibernate学习-05:CRUD(增删改查)操作之修改记录

本文介绍了使用Hibernate框架更新数据库记录的方法,包括手动创建对象和先查询再修改两种方式,并对比了它们的特点。

如果我们需要修改一条记录,怎么做呢?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();
	}
运行测试:



看看数据库:


添加成功。



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值