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 如果多个字段的类型不一样 可以写Object List<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对象方法直接返回对象形式 不需要list Object obj = query.uniqueResult(); syso(obj); <-- 注意 上面的那个方法返回类型是Object 如果要返回int或者其他类型 咱们首先考虑到会进行类型的强转 但是在这里会输出异常 异常类型是类型转换异常(ClassCastException) 所以我们要先把Object类型转换成long类型 在转换成Integer类型; Long longO = (Long)obj; int count = longO.intValue(); syso(count); -->