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
  • 相关阅读:
    synchronized介绍
    volatile介绍
    docker开启远程访问
    docker时间同步解决办法
    spring boot集成docker
    vue踩坑-Error: listen EADDRNOTAVAIL 192.168.1.122:8081
    大前端(全栈)学习路线指南
    做前端技术方案选型的时候,你是怎么做决策的?
    小程序源码丢失了怎么在微信平台反编译找回
    做前端技术方案选型的时候,你是怎么做决策的?
  • 原文地址:https://www.cnblogs.com/pecool/p/9689500.html
Copyright © 2011-2022 走看看