跟我学hibernate框架技术——hibernate分页和criteria等接口实现查询数据实例内容摘要:

.setProjection( () .add( () ) .add( (weight) ) .add( (weight) ) .add( (weight) ) .add( (color) ) ) .addOrder( (color) ) .list()。 也 可以选择把一个别名指派给一个 投影,这样可以使投影值被约束或排序所引用。 下面是两种不同的实现方式: List results = () .setProjection( ( (color), colr ) ) .addOrder( (colr) ) .list()。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 11/26 页 11 List results = () .setProjection( (color).as(colr) ) .addOrder( (colr) ) .list()。 注意: alias()和 as()方法简便的将一个投影实例包装到另外一个 别名的 Projection 实例中。 简而言之,当我们添加一个投影到一个投影列表中时,我们可以为它指定一个别名。 List results = () .setProjection( () .add( (), catCountByColor ) .add( (weight), avgWeight ) .add( (weight), maxWeight ) .add( (color), color ) ) .addOrder( (catCountByColor) ) .addOrder( (avgWeight) ) .list()。 List results = (, cat) .createAlias(kittens, kit) .setProjection( () .add( (), catName ) .add( (), kitName ) ) .addOrder( (catName) ) .addOrder( (kitName) ) .list()。 ( 6) 也可以使用 ()来表示投影。 List results = () .setProjection( (name) ) 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 12/26 页 12 .add( (color).eq() ) .list()。 List results = () .setProjection( () .add( ().as(catCountByColor) ) .add( (weight).avg().as(avgWeight) ) .add( (weight).max().as(maxWeight) ) .add( (color).group().as(color ) ) .addOrder( (catCountByColor) ) .addOrder( (avgWeight) ) .list()。 Criteria 查询表达式 ( 1)添加查询条件 Criteria 本身只是一个查询容器,具体的查询条件需要通过 方法添加到Criteria 实例中。 ( 2) Expression 对象 在 包中提供有 Expression 类, Expression 对象具体描述了查询条件。 针对 SQL 语法, Expression 提供了对应的查询限定机制。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 13/26 页 13 ( 3) Expression 类中的各种查询条件的方法 ( 4)从 类所继承来的方法功能说明 方法 描述 对应 SQL “ field = value ” 表 达 式。 如杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 14/26 页 14 (name,Erica) 参数为一个 Map 对象,其中包含了多个属性-值对应关系。 相当于多个 关系的叠加。 对应 SQL 中的“ field value ” 表达式 对应 SQL 中的“ field = value” 表达式 对应 SQL 中的“ field value” 表达式 对应 SQL 中的“ field = value” 表达式 对应 SQL 中的“ between” 表达式,如下面的表达式表示年龄( age)位于 13 到 50 区 间 内。 (age,newInteger(13),new Integer(50))。 对应 SQL 中的“ field like value” 表达式 对应 SQL 中的” field in „” 表达式 rty 用于比较两个属性之间的值,对应 SQL 中的“ field= field”。 如: (,)。 rty 用于比较两个属性之间的值,对应 SQL 中的“ field field”。 rty 用于比较两个属性之间的值, 对应 SQL 中的“ field= field”。 rty 用于比较两个属性之间的值,对应 SQL 中的“ field field”。 rty 用于比较两个属性之间的值,对应 SQL 中的“ field= field”。 and 关 系 组 合。 如 :((name,Erica),(sex,new Integer(1)))。 or关系组合。 如: ((name,Erica),(name,Emma))。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 15/26 页 15 作为补充,本方法提供了原生 SQL 语法的支持。 我们可以通过这个方法直接通过 SQL 语句限定查询条件。 下面的代码返回所有名称以“ Erica”起始的记录: ( “ lower({alias}.name) like lower(?)”,Erica%,Hibernate .STRING)。 其中的“ {alias}”将由 Hibernate 在运行期使用当前关联的 POJO别名替换。 应用示例 ( 1)查询所有的数据 如果要使用 Criteria 來 查询 所有的 User 类( User 数据库表)中的数据,则应该采用下面的代码。 Criteria crit = ()。 List users = ()。 for (ListIterator iterator = ()。 ()。 ) { User user = (User) ()。 (name: + ())。 (age: + ())。 } ( 2)带条件的查询 如果我们要为 查询 限 定条件,則可以通过 设定 查询 限定条件, Expression 类提供了多种条件的查 询 方法(请见前面的说明)。 下面给出应用的示例。 Criteria crit = ()。 ((age, new Integer(25)))。 List users = ()。 Expression 的 ge()方法即 greatequal,也就是大于等于( =),在上例中我们限定查杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 16/26 页 16 询 age 属性的值为大于等于 25的 User 数据。 ( 3)也可以设定多个查询限定条件 通过调用 add()方法来添加多个条件 ((age, new Integer(20)))。 ((weight, new Integer(60), new Integer(80)))。 List users = ()。 上例中我们 查询 age 大。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。