【Hibernate】——CRUD操作

前言

    在进入Hibernate的学习之后,接触了CRUD操作这个概念,开始不知道,觉得没啥,后面又遇到了,百度了一下,CRUD是指在计算机处理是的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能。


Create


public void testSave1(){
		Session session = null;
		Transaction tx = null;
		User user =null;
		try{
			session = HibernateUtils.getSession();
			 tx= session.beginTransaction();
			
			//Transien状态
			user = new User();
			user.setName("张三");
			user.setPassword("123");
			user.setCreateTime(new Date());
			user.setExpireTime(new Date());
			
			//persistent 状态
			session.save(user);
			user.setName("李四");
			tx.commit();
			
		}catch(Exception e) {
			e.printStackTrace();
			if (tx != null) {
				tx.rollback();
			}
		}finally{
			HibernateUtils.closeSession(session);
		}
		
		//detached状态
		user.setName("王五");
		try{
			session = HibernateUtils.getSession();
			session.beginTransaction();
			//将detached状态的对象重新
			session.update(user);
			session.getTransaction().commit();
		}catch(Exception e){
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally{
			HibernateUtils.closeSession(session);
		}
	}


Retrieve


public void testLoad2(){
		Session session = null;
		try{
			session = HibernateUtils.getSession();
			session.beginTransaction();
			//采用Load查询不存在的数据,
			User user =(User)session.load(User.class,"5645456456");
			System.out.println(user.getName());
			session.getTransaction().commit();
		}catch(Exception e){
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally{
			HibernateUtils.closeSession(session);
		}
	}


Update


public void testUpdate1(){
			Session session = null;
			try{
				session = HibernateUtils.getSession();
				session.beginTransaction();
				User user = (User)session.load(User.class,"402895c85987170301598717048a0001");
				user.setName("周六");
				session.update(user);
				session.getTransaction().commit();
			}catch(Exception e){
				e.printStackTrace();
				session.getTransaction().rollback();
			}finally{
				HibernateUtils.closeSession(session);
			}
	}


Delete


public void testDelete2(){
			Session session = null;
			try{
				session = HibernateUtils.getSession();
				session.beginTransaction();
				//手动钩子Deteched对象
				User user =new User();
				user.setId("402895c85987443501598744369d0001");
				session.delete(user);
				session.getTransaction().commit();
			}catch(Exception e){
				e.printStackTrace();
				session.getTransaction().rollback();
			}finally{
				HibernateUtils.closeSession(session);
			}
	}


在Hibernate中Session的一些常用方法:


Query query = session.createQuery(hql):利用hql查询语句查询;
Criteria critera = session.createCriteria(Class clazz);
Transaction tx = session.beginTransaction();     //开始事务;tx.commit()提交事务;
session.close();//关闭Session,此后被session管理的持久化对象变为脱管状态;
session.save(Object obj);    //添加
session.update(Object obj);     //更新
session.delete(Object obj);    //删除
Object obj = session.get(Class clazz,Serialiazble id);    //根据主键查找记录并返回;
Object obj = session.load(Class clazz,Serializable id);    //和get方法效果一样,但是是懒加载,即在不使用他之前他不会返回对象;


总结

    hibernate的CRUD操作主要是通过session这个持久化管理器来进行操作,还是比较简单的。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值