一、HQL 例如: public static List query(String name){ Configuration cfg = new Configuration(); cfg.configure(); SessionFactory sf = null; Session s = null; try{ sf = cfg.buildSessionFactory(); s = sf.openSession(); String hql = "from User as user where user.name=:n";//from User查询的是对象User,而不是User表.这也是HQL与SQL的区别 Query query = s.createQuery(hql); query.setString("n","test"); //设置HQL语句中的:n对应的值 query.setFirstResult(200);//分页。记录开始数 query.setMaxResults(10);//分页。显示记录条数 return query.list();//多条记录 /* 如果确定返回的结果只有一条记录,可以使用query.uniqueResult(); 但如果使用此方法,若超出一条记录,将抛出异常。 */ }finally{ if(s != null) s.close(); } } 二、Criteria对象 public static List query(Object obj, String name){ Configuration cfg = new Configuration(); cfg.configure(); SessionFactory sf = cfg.buildSessionFactory(); Session s = null; try{ s = sf.openSession(); Criteria c = s.createCriteria(obj.getClass()); //创建Criteria对象 c.add(Restrictions.eq("user","test"));//传入查询条件,User类中的属性name必须等于test c.add(Restrictions.lt("birthday",new Date()); c.setFirstResult(200);//分页。记录开始数 c.setMaxResults(10);//分页。显示记录条数 return c.list(); }finally{ if(s != null) s.close(); } }