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);
    }

 

转载于:https://www.cnblogs.com/pecool/p/9689500.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值