privatestaticvoid query() {
Session session=HibernateUtils.getSession();
Criteria criteria=session.createCriteria(Student.class);
// age in(20,22)
criteria.add(Restrictions.in("age", new Object[]{20,22}));
/*//select name //criteria.setProjection(Projections.property("name"));
criteria.setProjection(Property.forName("name"));
List<String> names=criteria.list();
System.out.println(names);*/
/*ProjectionList projectionList=Projections.projectionList();
//projectionList.add(Projections.property("name"));
projectionList.add(Property.forName("name"));
projectionList.add(Projections.property("age"));
//对指定的查询列起别名
projectionList.add(Property.forName("email"), "邮箱");
//select name,age,email as '邮箱'.....
criteria.setProjection(projectionList);
List<Object[]> list=criteria.list();
for(Object[] objs:list){
System.out.println(Arrays.toString(objs));
}*/
/*//select count(*)//criteria.setProjection(Projections.rowCount());//select avg(age) from t_student where age in(20,22)//criteria.setProjection(Projections.avg("age"));//select count(id) from t_student where age in(20,22)//criteria.setProjection(Projections.count("id"));
Object result=criteria.uniqueResult();
System.out.println("result="+result);*/
//select age count(id) from t_student where age in(20,22) group by age //group by age
criteria.setProjection(Projections.projectionList()
.add(Projections.groupProperty("age")) //如果指定按某个字段进行分组,则这个字段会自动出现在select语句中
.add(Projections.count("id"))
);
List<Object[]> list=criteria.list();
for(Object[] objs:list){
System.out.println(Arrays.toString(objs));
}
}