1.Hibernate查询
*1)HQL查询
Hibernate Query Language.
HQL属于面向对象的查询语言,语句中使用Hibernate映射的类和属性名,不能使用表名和字段名.类和属性大小写敏感.关键字不区分大小写
HQL语句的结构与SQL相似.
a.支持select,from,group by,order by,having
b.支持各种运算符和表达式,例如+,-,>,<等
c.支持分组函数,max,min,avg,sum,count
支持like,in,between...and,and ,or
e.HQL不能使用 select *
f.HQL不能使用 join ... on语句.on语句不支持
使用示例:单表基本操作
a. "select nickname from User where nickname<>''";
返回的是一个List结果
b."select id,nickname from User where nickname<>''";
返回的是一个List结果
c."select new User(id,nickname) from User where nickname<>''";
返回的是一个List结果
d."from User where nickname<>''";
返回的是一个List结果
e."select count(*) from User";
返回的是List,list中只有一个值
f."from User where nickname like ?";
query.setString(0,"&s%");
query.list();
g."from User where nickname like :name";
query.setString("name","&s%");
query.list();
h.将hql写入到hbm.xml
在hbm.xml中定义hql
......映射信息
from User where id=:id
]]>
在程序中使用下面代码获取Query对象
Query query = session.getNamedQuery("findById");
i.HQL分页查询
//设置分页查询参数
//设置抓取记录的起始位置,从0开始
query.setFirstResult(0);
//设置最多抓取5个
query.setMaxResults(5);