• hibernate查询方式


    hibernate查询方式:1.本地SQL查询  2.HQL查询  3.QBC查询

    HQL查询:是面向对象的查询语言,是使用最广的一种查询方法

    QBC查询:Query by Criteria是一套接口来实现的查询方式

    StudentTest.java:

    package service;



    import java.util.Iterator;
    import java.util.List;

    import model.Student;

    import org.hibernate.Criteria;
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.criterion.Criterion;
    import org.hibernate.criterion.Order;
    import org.hibernate.criterion.Restrictions;
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;

    import util.HibernateUtil;


    public class StudentTest {

        SessionFactory sessionfactory=HibernateUtil.getSessionFactory();//获取Session工厂
        private Session session;
        
        @Before
        public void setUp() throws Exception {
            session=sessionfactory.openSession();//生成一个新的session
            session.beginTransaction();//开启事务
        }

        @After
        public void tearDown() throws Exception {
            session.getTransaction().commit();//提交事务
            session.close();//关闭session
        }

        @Test
        public void testSQLQuery(){
            String sql="select * from t_student";
            Query query=session.createSQLQuery(sql).addEntity(Student.class);
            List studentList=query.list();
            Iterator it=studentList.iterator();
            while(it.hasNext()){
                Student s=(Student) it.next();
                System.out.println(s);
            }
        }
        
        @Test
        public void testSQLQuery2(){
            String sql="select * from t_student where stuName like :stuName and stuAge=:stuAge";
            Query query=session.createSQLQuery(sql).addEntity(Student.class);
            query.setString("stuName","11%");
            query.setInteger("stuAge",1);
            List studentList=query.list();
            Iterator it=studentList.iterator();
            while(it.hasNext()){
                Student s=(Student) it.next();
                System.out.println(s);
            }
        }
        
        @Test
        public void testHQLQuery(){
            String hql="from Student";
            Query query=session.createQuery(hql);
            List<Student> studentList=(List<Student>)query.list();
            Iterator it=studentList.iterator();
            while(it.hasNext()){
                Student s=(Student) it.next();
                System.out.println(s);
            }
        }
        
        @Test
        public void testHQLQuery2(){
            String hql="from Student as s where s.name like :stuName and s.age=:stuAge";
            Query query=session.createQuery(hql);
            query.setString("stuName","11%");
            query.setInteger("stuAge",1);
            List<Student> studentList=(List<Student>)query.list();
            Iterator it=studentList.iterator();
            while(it.hasNext()){
                Student s=(Student) it.next();
                System.out.println(s);
            }
        }
        
        @Test
        public void testHQLQuery3(){
            String hql="from Student order by age desc";
            Query query=session.createQuery(hql);
            List<Student> studentList=(List<Student>)query.list();
            Iterator it=studentList.iterator();
            while(it.hasNext()){
                Student s=(Student) it.next();
                System.out.println(s);
            }
        }
        
        @Test
        public void testHQLQuery4(){
            String hql="from Student";
            Query query=session.createQuery(hql);
            query.setFirstResult(1);
            query.setMaxResults(2);
            List<Student> studentList=(List<Student>)query.list();
            Iterator it=studentList.iterator();
            while(it.hasNext()){
                Student s=(Student) it.next();
                System.out.println(s);
            }
        }
        
        @Test
        public void testHQLQuery5(){
            String hql="from Student";
            Query query=session.createQuery(hql);
            query.setFirstResult(1);
            query.setMaxResults(1);
            Student student=(Student) query.uniqueResult();
            System.out.println(student);
        }
        
        @Test
        public void testHQLQuery6(){
            String hql="from Student as s where s.name like :stuName and s.age=:stuAge";
            Query query=session.createQuery(hql);
            List<Student> studentList=(List<Student>)query.setString("stuName","11%").setInteger("stuAge",1).list();
            Iterator it=studentList.iterator();
            while(it.hasNext()){
                Student s=(Student) it.next();
                System.out.println(s);
            }
        }
        
        @Test
        public void testQBCQuery1(){
            Criteria criteria=session.createCriteria(Student.class);
            List<Student> studentList=criteria.list();
            Iterator it=studentList.iterator();
            while(it.hasNext()){
                Student s=(Student) it.next();
                System.out.println(s);
            }
        }
        
        @Test
        public void testQBCQuery2(){
            Criteria criteria=session.createCriteria(Student.class);
            Criterion c1=Restrictions.like("name","22%");
            Criterion c2=Restrictions.eq("age",2);
            criteria.add(c1);
            criteria.add(c2);
            List<Student> studentList=criteria.list();
            Iterator it=studentList.iterator();
            while(it.hasNext()){
                Student s=(Student) it.next();
                System.out.println(s);
            }
        }
        
        @Test
        public void testQBCQuery3(){
            Criteria criteria=session.createCriteria(Student.class);
            criteria.addOrder(Order.desc("age"));
            List<Student> studentList=criteria.list();
            Iterator it=studentList.iterator();
            while(it.hasNext()){
                Student s=(Student) it.next();
                System.out.println(s);
            }
        }
        
        @Test
        public void testQBCQuery4(){
            Criteria criteria=session.createCriteria(Student.class);
            criteria.setFirstResult(2);
            criteria.setMaxResults(2);
            List<Student> studentList=criteria.list();
            Iterator it=studentList.iterator();
            while(it.hasNext()){
                Student s=(Student) it.next();
                System.out.println(s);
            }
        }
        
        @Test
        public void testQBCQuery5(){
            Criteria criteria=session.createCriteria(Student.class);
            criteria.setFirstResult(2);
            criteria.setMaxResults(1);
            Student student=(Student) criteria.uniqueResult();
            System.out.println(student);
        }
        
        @Test
        public void testQBCQuery6(){
            Criteria criteria=session.createCriteria(Student.class);
            List<Student> studentList=criteria.setFirstResult(0).setMaxResults(2).list();
            Iterator it=studentList.iterator();
            while(it.hasNext()){
                Student s=(Student) it.next();
                System.out.println(s);
            }
        }
    }

  • 相关阅读:
    Ecshop后台管理增加成本价和毛利润统计功能
    如何在Ecshop首页调用积分商城里的商品
    Ecshop调用促销商品
    Python 精选内置函数
    Python爬虫原理
    android中解析后台返回的json字符串
    JSONObject与JSONArray的使用
    python的字符串截取
    centos6系统下网卡bond模式介绍
    fio工具中的iodepth参数与numjobs参数-对测试结果的影响
  • 原文地址:https://www.cnblogs.com/daochong/p/4951370.html
Copyright © 2020-2023  润新知