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
  • 相关阅读:
    通过日期获取星期几,通过日期获取凌晨、上午、中午、下午、晚上
    asp.net 格式化显示时间为几个月,几天前,几小时前,几分钟前,或几秒前
    继承和多态 复习
    .net 缩略图 宽高比 .js缩略图 宽高比
    显示实现接口和实现接口的区别
    HDMI信号解析
    锂电池充电过程
    HDMI接口基础知识及硬件设计
    HDMI传输原理:TMDS
    为什么有些信号线串接33R小电阻?
  • 原文地址:https://www.cnblogs.com/pecool/p/9689500.html
Copyright © 2011-2022 走看看