1.HQL查询(hibernate query language) 操作的是实体类和属性
*查询所有记录
//1.hql查询操作会使用Query对象// ?(1)写sql语句 创建Query对象, ???String hql = "from Student"; ???//from后面是实体类名 ??Query query = session.createQuery("hql");//(2)调用方法得到结果List<Student> list = query.list();//(3)遍历输出for( Student student : list){ ?syso(student.getid()+":::"+student.getname());}
2.条件查询
*****1.
//1.hql查询操作会使用Query对象// ?(1)写sql语句 创建Query对象, ???String hql = "from Student where id=? and name=?"; ????Query query = session.createQuery("hql");//设置条件值//第一个参数是?的位置 类型是int ?第二个参数是设置的值 ?query.setParameter(0,1); ?query.setParameter(1,"张三");//(3)调用方法得到结果List<Student> list = query.list();//(4)遍历输出for( Student student : list){ ?syso(student.getid()+":::"+student.getname());}
**********2.模糊条件查询
//1.hql查询操作会使用Query对象// ?(1)写sql语句 创建Query对象, ???String hql = "from Student where ?name like ?"; ????Query query = session.createQuery("hql");//设置条件值//第一个参数是?的位置 类型是int ?第二个参数是设置的值//查询以张开头的姓名 ?query.setParameter(0,"张%");//(3)调用方法得到结果List<Student> list = query.list();//(4)遍历输出for( Student student : list){ ?syso(student.getid()+":::"+student.getname());}
3.排序查询
//1.hql查询操作会使用Query对象// ?(1)写sql语句 创建Query对象,升序查询asc 降序查询desc; ???String hql = "from Student order by cid asc"; ????Query query = session.createQuery("hql");//(3)调用方法得到结果List<Student> list = query.list();//(4)遍历输出for( Student student : list){ ?syso(student.getid()+":::"+student.getname());}
4.分页查询
在mysql中实现分页使用关键字limit实现
SELECT * FROM Student ?LIMIT 0,5//0是起始位置 5是显示最多纪录数
在hibernate中封装了两个方法来实现分页查询的操作
//1.hql查询操作会使用Query对象// ?(1)写sql语句 查询所有 创建Query对象, ???String hql = "from Student"; ????Query query = session.createQuery("hql");//设置分页数据query.setFirstResult(0);query.setMaxResults(5);//(3)调用方法得到结果List<Student> list = query.list();//(4)遍历输出for( Student student : list){ ?syso(student.getid()+":::"+student.getname());}
5.投影查询
*****查询的是表中的某一字段的所有值
//1.hql查询操作会使用Query对象// ?(1)写sql语句 创建Query对象, ???String hql = "select ?name from Student"; ????Query query = session.createQuery("hql");//(3)调用方法得到结果 泛型的类型这里可以是String 如果多个字段的类型不一样 可以写ObjectList<Object> list = query.list();//(4)遍历输出for( Object object : list){ ?syso(object);}
6.聚集函数
*****常见的几种聚集函数 count avg min max sum ;
在这里演示查询表中的记录数
//1.hql查询操作会使用Query对象// ?(1)写sql语句 创建Query对象, ???String hql = "select count(*) from Student"; ????Query query = session.createQuery("hql");//(3)调用方法得到结果 这里用query对象方法直接返回对象形式 不需要listObject obj = query.uniqueResult();syso(obj);<-- 注意 上面的那个方法返回类型是Object 如果要返回int或者其他类型 ?咱们首先考虑到会进行类型的强转 但是在这里会输出异常 ?异常类型是类型转换异常(ClassCastException) 所以我们要先把Object类型转换成long类型 在转换成Integer类型; Long longO = (Long)obj; int count = longO.intValue();syso(count); ?-->
hibernate查询方式(二)
原文地址:https://www.cnblogs.com/alex96/p/8214787.html