HQL查询:提供了面向对象的封装。
1.实体查询
String hql="from User user";
List list=session.CreatQuery(hql).list();
解释:查询出User对象所对应的所有数据 如果User存在子类数据 list也会查询出来
2.属性查询
List list=session.CreatQuery(" select user.id from User user ").list();
解释:list里面是user id 的属性组成的集合。
3.分组与排序
A order by
B group by
和sql语句一样的用法
4 参数绑定
hibernate提供了对动态查询参数绑定丰富的支持 一共有四种参数绑定方式
A 按照参数名称绑定 在HQL语句中定义参数要以:开头
Query query=session.createQuery( " from User user where user.name=:name " );
query.setString("name",name);
B 按照参数位置绑定
Query query=session.createQuery(" from User user where user.name=? ");
query.setString(0,name);
C.setParameter();
String hql=" from User user where user.name=:name ";
Query query=session.createQuery(hql);
query.setParameter( "name",name,Hibernate.STRING );
setParameter()包含三个参数 分别是 命名参数名称 命名参数实际的值 命名参数映射类型 (映射类型是否写 分情况而论)
D. setProperties方法。
Customer customer=new Customer();
customer.setName(“pansl”);
customer.setAge(80);
Query query=session.createQuery(“from Customer c where c.name=:name and c.age=:age ”);
query.setProperties(customer);
简单点说:就是设置实体对象某些指定的值,然后放到HQL语句中去查询