Hibernate实现查询

在Hibernate中提供了三种常见的查询的方式,分别为:

  1. Hibernate自带的API接口查询
  2. HQL语言进行查询
  3. QBC(Query By Criteria)查询

通过Hibernate的自带的API接口进行查询

如使用get()方法通过id进行数据查询:

@Test  
	public void testQueryUserById(){
		// TODO Auto-generated method stub
		SessionFactory sf = null;	
		Session session = null;
		Transaction ts = null;
		try {
  			sf = HibernateUtil.getSessionFactory();
			session = sf.getCurrentSession();
			ts = session.beginTransaction();
            ORMdemo orm=(ORMdemo)session.get(ORMdemo.class, 1);
            //持久化
			System.out.println("ID:"+orm.getId()+" Username:"+orm.getUsername()+" Password:"+orm.getPassword());
			ts.commit();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			if(ts != null)
			{
				ts.rollback();
			}
			e.printStackTrace();
		}
	}

再如通过save()方法实现数据的添加:

@Test  
	public void insertTest(){
		// TODO Auto-generated method stub
		SessionFactory sf = null;	
		Session session = null;
		Transaction ts = null;

		
		try {
  			sf = HibernateUtil.getSessionFactory();
			session = sf.getCurrentSession();
			ts = session.beginTransaction();
			ORMdemo orm=new ORMdemo();
            //持久化
            orm.setUsername("wujinke");
            orm.setPassword("wujinke");
			session.save(orm);
			ts.commit();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			if(ts != null)
			{
				ts.rollback();
			}
			e.printStackTrace();
		}
	}

常见的方法如get()、load()、update()、delete()以及save()等。

使用QBC语句进行查询

如简单查询:

@Test
	public void propertyQueryTest(){
		// TODO Auto-generated method stub
		SessionFactory sf = null;	
		Session session = null;
		Transaction ts = null;
		try {
  			sf = HibernateUtil.getSessionFactory();
			session = sf.getCurrentSession();
			ts = session.beginTransaction();
           String hql="select u.username from ORMdemo as u";
           Query query =session.createQuery(hql);
           List<Object>list=query.list();
           java.util.Iterator<Object> iter=list.iterator();
           while(iter.hasNext()){
        	   Object obj=(Object)iter.next();
        	   System.out.println(obj);
           }
			ts.commit();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			if(ts != null)
			{
				ts.rollback();
			}
			e.printStackTrace();
		}
	}

实例化查询:

@Test
	public void objectQueryTest(){
		// TODO Auto-generated method stub
		SessionFactory sf = null;	
		Session session = null;
		Transaction ts = null;
		try {
  			sf = HibernateUtil.getSessionFactory();
			session = sf.getCurrentSession();
			ts = session.beginTransaction();
           String hql="select new ORMdemo(u.username,u.password) from ORMdemo as u";
           Query query =session.createQuery(hql);
           List<ORMdemo>us=query.list();
           for(ORMdemo u:us){
        	   System.out.println(u.getUsername()+" "+u.getPassword());
           }
			ts.commit();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			if(ts != null)
			{
				ts.rollback();
			}
			e.printStackTrace();
		}
	}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值