zoukankan      html  css  js  c++  java
  • Hibernate中的查询方式

     一、这里一共写了三种查询的方式

    1、

    HQL查询-hibernate Query Language(多表查询,但不复杂时使用)

    2、

    Criteria查询(单表条件查询),无语句面向对象查询

    3、

    原生SQL查询(复杂的业务查询)
    public class QueryMode {
        public static  void main(String[] args){
            QueryMode mode=new QueryMode();
            mode.HQLBaseQuery();
            
        } 
        /*
         * 一、HQL查询-hibernate Query Language(多表查询,但不复杂时使用)
         * 1.基本查询
         * 2.条件查询:(1)?号占位符;(2)命名占位符
         * 3.分页查询
         */
        @Test
        public  void HQLBaseQuery(){
            Configuration cf=new Configuration().configure();
            SessionFactory sf=cf.buildSessionFactory();
            Session session=sf.openSession();
            String hql=" from Users";//书写hql语句
            Query query = session.createQuery(hql);
            List<Users> list = query.list();
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i).toString());
            }
            session.close();
            sf.close();
        }
        @Test
        public  void HQLConditionQuery(){
            Configuration cf=new Configuration().configure();
            SessionFactory sf=cf.buildSessionFactory();
            Session session=sf.openSession();
            //String hql=" from Users where id=?";//?好占位符查询
            String hql=" from Users where id=:id";//命名占位符查询
            Query query = session.createQuery(hql);
            //query.setParameter(0, 11);
            query.setParameter("id", 10);
            Users users = (Users) query.uniqueResult();
            System.out.println(users.toString());
            session.close();
            sf.close();
        }
        @Test
        //分页查询
        public  void HQLQueryWithPage(){
            Configuration cf=new Configuration().configure();
            SessionFactory sf=cf.buildSessionFactory();
            Session session=sf.openSession();
            String hql=" from Users";//
            Query query = session.createQuery(hql);
            query.setFirstResult(2);
            query.setMaxResults(3);
            List<Users> list = query.list();
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i).toString());
            }
            session.close();
            sf.close();
        }
        /*
         * 二、Criteria查询(单表条件查询),无语句面向对象查询
         * 1.基本查询
         * 2.条件查询
         * 3.分页查询
         * 4.设置查询总记录数
         */
        @Test
        public  void criteriaBaseQuery(){
            Configuration cf=new Configuration().configure();
            SessionFactory sf=cf.buildSessionFactory();
            Session session=sf.openSession();
            Criteria criteria=session.createCriteria(Users.class);
            List<Users> list = criteria.list();
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i).toString());
            }
            session.close();
            sf.close();
        }
        /*
         * (>,gt),(>=,ge),(<,lt),(<=,le),(==,eq),(!=,ne),
         * (in,in),(between and,between),(like,like),(or,or),(and,and)
         * (is not null,isNotNull),(is null,isNull)
         */
        @Test
        public  void criteriaIfQuery(){
            Configuration cf=new Configuration().configure();
            SessionFactory sf=cf.buildSessionFactory();
            Session session=sf.openSession();
            Criteria criteria=session.createCriteria(Users.class);
            criteria.add(Restrictions.eq("id", 11));
            Users users = (Users) criteria.uniqueResult();
            System.out.println(users.toString());
            session.close();
            sf.close();
        }
        @Test
        public  void criteriaQueryWithPage(){
            Configuration cf=new Configuration().configure();
            SessionFactory sf=cf.buildSessionFactory();
            Session session=sf.openSession();
            Criteria criteria=session.createCriteria(Users.class);
            criteria.setFirstResult(2);
            criteria.setMaxResults(3);
            List<Users> list = criteria.list();
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i).toString());
            }
            session.close();
            sf.close();
        }
        /*
         * 三、原生SQL查询(复杂的业务查询)
         * 1.基本查询:(1)返回数据List;(2)返回对象List
         * 2.条件查询
         * 3.分页查询
         */
        @Test
        public  void SqlBaseQueryList1(){
            Configuration cf=new Configuration().configure();
            SessionFactory sf=cf.buildSessionFactory();
            Session session=sf.openSession();
            String sql="select * from users ";
            SQLQuery query = session.createSQLQuery(sql);
            List<Object[]> list = query.list();//返回数据List
            for(int i=0;i<list.size();i++){
                System.out.println(Arrays.toString(list.get(i)));
            }
            session.close();
            sf.close();
        }
        @Test
        public  void SqlBaseQueryList2(){
            Configuration cf=new Configuration().configure();
            SessionFactory sf=cf.buildSessionFactory();
            Session session=sf.openSession();
            String sql="select * from users ";
            SQLQuery query = session.createSQLQuery(sql);
            query.addEntity(Users.class);//指定将结果集封装到哪个对象中
            List<Users> list = query.list();//返回对象List
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i).toString());
            }
            session.close();
            sf.close();
        }
        @Test
        public  void SqlIfQuery(){
            Configuration cf=new Configuration().configure();
            SessionFactory sf=cf.buildSessionFactory();
            Session session=sf.openSession();
            String sql="select * from users where id = ?";
            SQLQuery query = session.createSQLQuery(sql);
            query.setParameter(0, 10);
            query.addEntity(Users.class);
            List<Users> list = query.list();
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i).toString());
            }
            session.close();
            sf.close();
        }
        @Test
        public  void SqlQueryWithPage(){
            Configuration cf=new Configuration().configure();
            SessionFactory sf=cf.buildSessionFactory();
            Session session=sf.openSession();
            String sql="select * from users limit  ?,?";
            SQLQuery query = session.createSQLQuery(sql);
            query.setParameter(0, 5);
            query.setParameter(1, 3);
            query.addEntity(Users.class);
            List<Users> list = query.list();
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i).toString());
            }
            session.close();
            sf.close();
        }
    }
  • 相关阅读:
    DOM BOM document window 区别
    cookie、localStorage和sessionStorage区别
    css实现九宫格
    三个提升网页性能技巧
    我们为什么在移动端项目中选择jQuery而不是Zepto
    SEO优化实践操作
    查询设计分析
    SQL Server常用元数据函数
    SQL Server数学函数
    SQL Server文本和图像函数
  • 原文地址:https://www.cnblogs.com/mathlin/p/9552919.html
Copyright © 2011-2022 走看看