hibernate查询方式
HQL查询
一般查询
//select * from user;
Query query=session.createQuery(“from user”);
List<User> list=query.list();
//select * from user where sex=? and age > ?;
Query query=session.createQuery(“from user where sex=? and age > ?”);
query.setParameter(0,”男”);
query.setParameter(1,”23”);
List<User> list=query.list();
分页查询
在MySQL中主要通过limit来分页,但是不同的数据库不一样,所以hibernate不识别limit。
Query query=session.createQuery(“from user”);
query.setFirstResult(0);//起始位置
query.setMaxResults(30);//最大查询数
List<User> list=query.list();
投影查询
Query query=session.createQuery(“select name from user”);
这里需要注意:hql不支持 select * from user 中的 *
聚集函数
Query query=session.createQuery(“select count(*) from user”);
//返回唯一值
Object obj=query.uniqueResult();
Criteria查询
查询所有
Criteria criteria=session.createCriteria(User.class);
List<User> userlist=criteria.list();
条件查询
Criteria criteria=session.createCriteria(User.class);
criteria.add(Restrictions.eq("uname","张三"));
List<User> userlist=criteria.list();