Criteria查询Word文档格式.docx
《Criteria查询Word文档格式.docx》由会员分享,可在线阅读,更多相关《Criteria查询Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
list=criteria.list();
4.mit();
查询Testbook中所有的数据,然后返回
Criteria接口的核心方法
add()
增加一个代表查询条件的Criterion对象
addOrder()
增加一个代表排序的Criterion对象
createAlias()
创建关联查询,为所关联的持久化类建立别名
createCriteria()
在相互关联的持久化类之间建立条件约束
setFirstResult()
设定要获取的第一条记录的位置
setMaxResults()
设定要获取的记录的最大数量
list()
获取满足查询条件的记录的集合
uniqueResult()
获取满足查询条件的唯一记录
对查询结果进行排序
session.createCriteria(Testbook.class).add(
3.Restrictions.like("
name"
"
任%"
)).add(Restrictions.between("
id"
1000,1010));
4.criteria.addOrder(Order.desc("
)).addOrder(Order.asc("
createdTime"
));
5.List<
6.mit();
实现分页显示数据
1.<
span
style="
font-size:
x-small;
"
>
Transaction
5.criteria.setMaxResults(30);
6.criteria.setFirstResult(10);
//setFirstResult()从0开始计数
7.List<
8.mit();
<
/span>
只查询一条记录
5.criteria.setMaxResults
(1);
6.Testbook
tb=(Testbook)criteria.uniqueResult();
7.mit();
Restrictions类
----------------------------------------------------------------------------------------------------------->
条件"
或"
方式组合查询条件
criteria=session.createCriteria(Testbook.class);
3.Criterion
criterion1=Restrictions.or(Restrictions.like("
),
4.Restrictions.between("
5.criteria.add(criterion1);
6.List<
使用原生SQL语句设定查询条件
3.criteria.add(Restrictions.sqlRestriction("
{alias}.name=?
Narcissus"
Hibernate.STRING));
4.List<
5.mit()
统计函数查询
3.criteria.setProjection(Projections.max("
price"
4.Double
maxValue=(Double)criteria.uniqueResult();
5.mit();
6.System.out.println(maxValue);
统计函数组合查询条件
获取多个统计函数的值
3.ProjectionList
proList=Projections.projectionList();
4.proList.add(Projections.max("
5.proList.add(Projections.min("
6.proList.add(Projections.avg("
7.proList.add(Projections.sum("
8.proList.add(Projections.count("
9.proList.add(Projections.countDistinct("
10.proList.add(Projections.rowCount());
11.criteria.setProjection(proList);
12.Object
values[]=(Object[])criteria.uniqueResult();
13.mit();
分组查询
3.criteria.setProjection(Projections.groupProperty("
Double>
分组统计
4.proList.add(Projections.rowCount());
//商品的个数
5.proList.add(Projections.sum("
6.proList.add(Projections.groupProperty("
7.criteria.setProjection(proList);
8.List<
9.mit();
投影查询
在一个表中有很多个字段,投影查询只是查询某一个或多个字段,也称局部查询
3.criteria.setProjection(Property.forName("
4.criteria.add(Restrictions.gt("
new
Double(40.0)))
使用Property类的forName()方法实现分组统计
4.proList.add(Projections.forName("
).max());
5.proList.add(Projections.forName("
).min());
6.proList.add(Projections.forName("
).avg());
7.proList.add(Projections.forName("
category.id"
).group().as("
c"
8.criteria.setProjection(proList);
9.criteria.addOrder(Order.desc("
10.List<
Object[]>
11.mit();
使用DetachedCriteria对象实现离线查询
1.//在表现层,构造DetachedCriteria对象,保存用户动态的查询条件
2.DetachedCriteria
detchedCriteria=DetachedCriteria.forClass(Testbook.class);
3.detchedCriteria.add(Restrictions.like("
Integer
(1),new
Integer(10)));
4.detchedCriteria.addOrder(Order.desc("
5.
6.//在业务逻辑层,DetachedCriteria对象与当前的Session对象进行绑定,获取查询结果
7.Session
session=HibernateSessionFactoryUtil.getSessionFactory().getCurrentSession();
8.Transaction
tx=detchedCriteria.getExecutableCriteria(session);
9.List<
10.mit();
根据示例对象进行查询
先定义一个模板然后把这个模板的样式传进去,查询,例如这里定义的Testbook中的名字为Narcissus的字段,进行查询,条件可以为一个也可以为多个,对应的就是where中的条件
1.Testbook
tb=new
Testbook();
2.tb.setName("
);
3.Session
4.Transaction
5.Criteria
6.Criteria.add(Example.creaate(tb));