【hibernate框架】核心开发接口-saveOrUpdate方法与delete方法

1.saveOrUpdate方法剖析

saveOrUpdate方法:分情况看是save还是update。


示例:

public void testSaveOrUpdate(){
	Teacher t=new Teacher();
	t.setName("t21");
	t.setTitle("低级");
	t.setBrithday(new Date());
	t.setZhicheng(ZhiCheng.C);
	
	Configuration cfg=new Configuration();
	SessionFactory sf=cfg.configure().buildSessionFactory();
	
	Session session=sf.openSession();
	session.beginTransaction();
	session.saveOrUpdate(t);
	//这次是在数据库中添加了一个(即执行了save方法)
	session.getTransaction().commit();
	
	t.setTitle("高级");
	
	Session session2=sf.getCurrentSession();
	session2.beginTransaction();
	session2.saveOrUpdate(t);
	//这次是在数据库中修改了刚刚的数据(即执行了update方法)
	session2.getTransaction().commit();
}


输出的Sql语句:
Hibernate: 
    insert 
    into
        _teacher
        (brithday, name, _title, zhicheng) 
    values
        (?, ?, ?, ?)
Hibernate: 
    update
        _teacher 
    set
        brithday=?,
        _title=?,
        zhicheng=? 
    where
        id=?

可以看出是先insert了teacher对象,之后update了数据库的teacher记录


2.delete方法

从表中删除相应的对象。

例子:删除表中id为4的对象

Teacher t=new Teacher();
t.setId(4);
t.setName("t11");
t.setTitle("中级");
t.setBrithday(new Date());
t.setZhicheng(ZhiCheng.A);
		
Configuration cfg=new Configuration();
SessionFactory sf=cfg.configure().buildSessionFactory();
		
Session session=sf.openSession();
session.beginTransaction();
session.delete(t);
session.getTransaction().commit();
session.close();
sf.close();


必须有相应的ID,在缓存中和数据库中有才可以delete它。

这个不难,主要你自己取多做测试就行了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值