zoukankan      html  css  js  c++  java
  • 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);
            }
        }
    }

  • 相关阅读:
    BPC (9) SAP BI & BPC 安装 : 一个外行眼里的千奇百怪 (1)
    ESB (2) POCSofewareAG
    BPC (7) BPC Netweaver 7 和 microsoft 7 版本的差异
    ESB (3) POCOralce ESB
    厘清了xorg里的一些概念
    Top命令和Kill命令
    ubuntu中文英文环境切换
    /etc/passwd 文件内容详细解释
    [分享] Linux下用Anjuta写个Hello World 的C++程序竟如此简单!
    /proc目录
  • 原文地址:https://www.cnblogs.com/daochong/p/4951370.html
Copyright © 2011-2022 走看看