Hibernate实现增删改查 ---- Hibernate_3

使用Hibernate完成对数据简单的增删改查

Hibernate内部也是采用JDBC来访问数据库的 ;

关于hibernate的帮助类请参考:HibernateUt Hibernate帮助类 -----Hibernate_2

操作步骤:

  1. 获取session
  2. 开启事务
  3. 数据操作
  4. 提交或者回滚事物
  5. 关闭session

增:

public void test_save(Employee employee){
		
		//1.获取session
		Session session= HibernateUtil.currentSession();
		
		try {
			//2.开启事务
			HibernateUtil.beginTransaction();
			
			//3. 保存对象
			session.save(employee);
			
			//4. 提交事务
			HibernateUtil.commitTransaction();
		} catch (Exception e) {
			//4.回滚事物
			HibernateUtil.rollerBackTransaction();
		}finally{
			HibernateUtil.closeSession();
		}
	}


删:

	public void test_delete(Employee employee){
		
		//1.获取session
		Session session= HibernateUtil.currentSession();
		
		try {
			//2.开启事务
			HibernateUtil.beginTransaction();
			
			//3. 删除对象
			session.delete(employee);
			
			//4. 提交事务
			HibernateUtil.commitTransaction();
		} catch (Exception e) {
			//4.回滚事物
			HibernateUtil.rollerBackTransaction();
		}finally{
			//5.关闭session
			HibernateUtil.closeSession();
		}
	}

改:

public void test_update(Employee employee){
		
		//1.获取session
		Session session= HibernateUtil.currentSession();
		
		try {
			//2.开启事务
			HibernateUtil.beginTransaction();
			
			//3. 修改对象
			session.update(employee);
			//session.saveOrUpdate(employee);
			//4. 提交事务
			HibernateUtil.commitTransaction();
		} catch (Exception e) {
			//4.回滚事物
			HibernateUtil.rollerBackTransaction();
		}finally{
			//5.关闭session
			HibernateUtil.closeSession();
		}
	}

saveOrUpdate()

同时包含saveupdate方法的功能,参数是瞬间状态就调用save方法,游离状态就update方法,配置文件增加dynamic-update属性就可以动态更新


查:通过id来查询一个对象

public void test_get(int id){
		
		//1.获取session
		Session session= HibernateUtil.currentSession();
		
		try {
			//2. 获取对象
			Employee employee = (Employee) session.get(Employee.class,id);
			Employee employee1 = (Employee) session.load(Employee.class,id);
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			//3.关闭session
			HibernateUtil.closeSession();
		}
	}

通过id查询有两种方式,这里说说这两种方式的区别:

  1. get()方法 如果根据主键没有查找到数据返回  null
  2. load方法如果根据主键没有查找到数据抛出异常
  3. 使用类级别懒加载时 load 方法即使没有加载到数据也不会抛异常 会返回null
  4. 使用类级别懒加载时 load方法不会执行select *  from  表的查询语句 只返回一个代理 只有ID属性其他均为null
  5. get方法不受类级别懒加载限制


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佛系编码i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值