zoukankan      html  css  js  c++  java
  • hibernate---session查询

     一、hql语句查询(适合多表)

    public class MyTest {
        public static void main(String[] args) {
            
            //查询集合
            Session session = SessionUtil.openSession();
            String hql = "from Emp";
            Query query = session.createQuery(hql);
            @SuppressWarnings("unchecked")
            List<Emp> list = query.list();
            
            //带条件查询方法1
            String hql2 = "from Emp where empno = ?";
            Query query2 = session.createQuery(hql2);
            query2.setInteger(0, 23);
            Emp emp = (Emp) query2.uniqueResult();
            
            //带条件查询方法2
            String hql3 = "from Emp where empno = ?";
            Query query3 = session.createQuery(hql3);
            query3.setParameter(0, 23);
            Emp emp2 = (Emp) query3.uniqueResult();
            
            //带条件查询方法3(命名占位符)
            String hql4 = "from Emp where empno = :xx";
            Query query4 = session.createQuery(hql4);
            query4.setParameter("xx", 23);
            Emp emp3 = (Emp) query4.uniqueResult();
            
            //分页查询
            String hql5 = "from Emp";
            Query query5 = session.createQuery(hql5);
            query5.setFirstResult(0);
            query5.setMaxResults(10);
            @SuppressWarnings("unchecked")
            List<Emp> list2 = query5.list();
            
            System.out.println(list);
            System.out.println(emp);
            System.out.println(emp2);
            System.out.println(emp3);
            System.out.println(list2);
        }
    }

    二、criteria查询(无语句查询,适合单表查询)

      

    private static void run2() {
            //查询集合
            Session session = SessionUtil.openSession();
            Criteria criteria = session.createCriteria(Emp.class);
            List<Emp> list = criteria.list();
            
            /*
             * 带条件查询方法
             * >                        gt
             * <                        lt
             * ==                        eq
             * !=                        ne
             */
            Criteria criteria2 = session.createCriteria(Emp.class);
            criteria2.add(Restrictions.eq("empno", 23));
            Emp emp = (Emp) criteria2.uniqueResult();
            
            //分页查询
            Criteria criteria3 = session.createCriteria(Emp.class);
            criteria3.setFirstResult(0);
            criteria3.setMaxResults(2);
            List<Emp> list2 = criteria3.list();
            
            
            System.out.println(list);
            System.out.println(emp);
            System.out.println(list2);
        }

     三、原生态sql语句查询

    private static void run3() {
            //集合查询
            Session session = SessionUtil.openSession();
            String sql = "select * from Emp";
            SQLQuery sqlQuery = session.createSQLQuery(sql);
            sqlQuery.addEntity(Emp.class);
            List<Emp> list = sqlQuery.list();
            
            //条件查询
            String sql2 = "select * from emp where ename = ?";
            SQLQuery sqlQuery2 = session.createSQLQuery(sql2);
    //        sqlQuery2.setParameter(0, "JAMES");
            sqlQuery2.setString(0, "JAMES");
            sqlQuery2.addEntity(Emp.class);
            List<Emp> list2 = sqlQuery2.list();
            
            //分页查询
            //如果是mysql使用特有的limit
            //如果是oracle使用原生态sql查询
            
            System.out.println(list);
            System.out.println(list2);
        }
    Best Regards
  • 相关阅读:
    Atitit. 真正的全中国文字attilax易语言的特点以及范例
    Atitit.nosql api 标准化 以及nosql数据库的实现模型分类差异
    Google&quot;员工&quot;曝内幕:Google员工的17个秘密
    WINDOWS 乱码解决
    计算机软件开发文档编写指南
    概要设计阶段概要设计说明书
    关于管理的经典故事(员工激励)
    概要设计阶段组装测试计划
    一个还不太老的程序员的体会
    程序员四大忌 你该如何避免呢?
  • 原文地址:https://www.cnblogs.com/pecool/p/9689500.html
Copyright © 2011-2022 走看看