package one; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; /*QBC 查询*/ public class Demo3 { public static void main(String[] args) { Configuration config=new Configuration().configure(); SessionFactory sf=config.buildSessionFactory(); Session session=sf.openSession(); Transaction trans=null; Criteria criteria = session.createCriteria(Students.class); criteria.add(Restrictions.gt("age", new Integer(20))); criteria.add(Restrictions.lt("age", new Integer(40))); criteria.setProjection(Projections.avg("age")); List studentsList = criteria.list(); // studentsList.get double age=(Double)studentsList.get(0); System.out.println(age); // List listCrit=criteria.list(); // Iterator iter=listCrit.iterator(); // while(iter.hasNext()){ // Students stu=(Students)iter.next(); // System.out.print(stu.getName()+" " ); // System.out.println(stu.getAge()); // } criteria.add(Restrictions.eq("name","rose")); // Students stu=(Students)criteria.uniqueResult(); // System.out.println(stu.getName()); // System.out.println(stu.getAge()); } } /* Criteria criteria = session.createCriteria(Students.class); //按照学生姓名的升序进行排序 criteria.addOrder(Order.asc("name")); //按照年龄的降序进行排序 criteria.addOrder(Order.desc("age")); List studentsList = criteria.list(); */ /* * criteria.setFirstResult(9); criteria.setMaxResults(20); List studentsList = criteria.list(); * */ /* * // 设置最大结果集为1,即只返回一个对象 criteria.setFirstResult(5); criteria.setMaxResults(1); Students students =(Students)criteria.uniqueResult(); * */ /* * // 设置最大结果集为1,即只返回一个对象 criteria.setFirstResult(5); criteria.setMaxResults(1); Students students =(Students)criteria.uniqueResult(); System.out.println(students.getName()); */ /* * // 查询学生姓名为”rose”的所有Students持久对象 criteria.add(Restrictions.eq("name", "rose")); List studentsList = criteria. list (); * */ /* * // 查询年龄大于20且小于40的所有Students持久对象 criteria.add(Restrictions.gt("age", new Integer(20))); criteria.add(Restrictions.lt("age", new Integer(40))); List studentsList = criteria. list (); * */ /* * // 查询学生的平均年龄 criteria.setProjection(Projections.avg("age")); List studentsList = criteria.list(); Double age=(Double)studentsList.get(0); System.out.println(age); * */ 获得ProjectionList对象 //ProjectionList projectionList = Projections.projectionList(); //projectionList.add(Projections.groupProperty("age")); //projectionList.add(Projections.rowCount()); // 查询每个年龄各有多少个人 //criteria.setProjection(projectionList); //List studentsList = criteria.list (); // //Iterator iter=studentsList.iterator(); //while(iter.hasNext()){ Students stuTemp=(Students)iter.next(); System.out.println(stuTemp.getAge()); // // Object []obj=(Object[])iter.next(); // System.out.print(obj[0]+" "); // System.out.println(obj[1]); //}