Hibernate QBC 动态查询
程序员文章站
2022-05-21 09:31:37
...
package com.svse.dao; import java.util.HashMap; import java.util.List; import java.util.Map; import org.hibernate.Criteria; import org.hibernate.criterion.Order; import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; import com.svse.entity.TEmp; import com.svse.util.HibernateSessionFactoryDaoSupportImpl; /* QBC == Query By Criteria * 查询方式是:Hibernate 提供的"更加面向对象"的一种检索方式。QBC 再查询条件上比HQL 更为灵活,而且支持运行时 * 动态生成查询语句 * * */ public class QBCDao extends HibernateSessionFactoryDaoSupportImpl { /** * 获取集合 List ar; */ public void qbcTest(){ Criteria criteria = this.getSession().createCriteria(TEmp.class); criteria.createCriteria("TDept"); //主外键绑定 /* * 设置查询条件:criteria.add() 装载参数 * 条件:EId == 2 * */ criteria.add(Restrictions.eq("EId",2)); /* Restrictions 类的常用方法 */ //1、Restrictions.allEq(map) , 进行多个等于的比对 Map map = new HashMap(); map.put("EId",2); map.put("EName","小王八"); criteria.add(Restrictions.allEq(map)); //2、Restrictions.gt(); -->gt :大于指定列的值 == greter than criteria.add(Restrictions.gt("EId",5)); //3、Restrictions.ge(); -->gt :大于等于指定列的值 == greter equal criteria.add(Restrictions.gt("EId",5)); //4、Restrictions.It(); 小于 less than //5、Restrictions.Le(); 小于等于 less equal; //6、Restrictions.between(); 指定属性在:指定的值之间 criteria.add(Restrictions.between("EId", 1, 5)); //7、Restrictions.like(); 模糊查询 //8、Restrictions.in(); 该属性在集合中的值 criteria.add(Restrictions.in("EName",new String[]{"小红","小明"})); //9、Restrictions.and(); and关系 //10、Restrictions.or(); or关系 /* 工具类Order 提供设置排序方式 */ //Order.asc(); 升序 //Order.desc();降序+ criteria.addOrder(Order.asc("EId")); /* 工具类:Projections 提供对查询结果进行统计与分组操作 */ //11、Projections.avg(); 求某属性的平均值 criteria.setProjection(Projections.avg("EId")); // Projections.countDistinct(); 统计某属性不同值的数量 criteria.setProjection(Projections.countDistinct("EName")); // Projections.max(); 最大值 // Projections.min(); 最小值 // Projections.projectionList(); 创建一个projectionList 对象 // Projections.rowCount(); 查询结果集中的行数 criteria.setProjection(Projections.projectionList()); // Projections.sum(); 计算和 List ar = criteria.list(); } }
上一篇: Spring Bean工厂和上下文
推荐阅读
-
C# linq查询之动态OrderBy用法实例
-
Hibernate通过SQL查询常量时只返回第一个字符问题的解决方法
-
Hibernate hql查询代码实例
-
HTML5 webSQL动态查询前端数据库表
-
oracle数据库查询没问题,正常显示两个汉字;但是java后台Hibernate查询的时候只显示第一个汉字怎么解决?
-
hibernate 命名查询如何实现
-
flask/django 动态查询表结构相同表名不同数据的Model实现方法
-
hibernate使用HibernateCallback回调的方法查询SQL时couldnotexecutequery--作怪的别名
-
动态构建Lambda表达式实现EF动态查询
-
JSP使用JDBC完成动态验证及采用MVC完成数据查询的方法