Hibernate关于查询
HQL查询
方法:Session#createQuery(“HQL”);
示例1:使用?占位符
Query query = session.createQuery("from User where uName like ?");
query.setString(0, "小%");
List<User> users=query.list();
System.out.println(users);
示例2:使用字符占位符
Query query = session.createQuery("from User where uName like :name");
query.setString("name", "小%");
List<User> users=query.list();
System.out.println(users);
Criteria接口:适合条件查询
示例1:
//查询姓名为小明的
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.eq("uName", "小明"));
List<User> users=criteria.list();
System.out.println(users);
排序:
Session.createQuery(“from User order by u_id desc”);
分页:
Session.createQuery(“from User”).setFirstResult().setMaxResults(3);
投影查询:
只查询几个字段
不使用
List<Object> list=Session.createQuery(“select u_name u_id from User ”).list();
使用:
1、提供构造方法
Session.createQuery(“select new User(u_id,u_name) from User ”).list();
聚合函数:count() sum() avg() max() min()
LIst<Number> list=Session.createQuery(“select count(u) from User u”).list();
Long count=list.get(0).longValue();
QBC查询(单表查询)
排序
条件查询
使用完聚合函数,如果想再获取对象列表,需要将projection设置为null
离线条件查询
通过sql查询(了解)
HQL连接查询