hibernate3学习笔记(七) Criteria Queries

仍然接着前面的例子来讲:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/Java/201101/23637.htm

示例代码如下:

1.package com.hb3.pack_01;2.3.import java.util.Iterator;4.import java.util.List;5.
6.import org.hibernate.Criteria;7.import org.hibernate.Hibernate;8.import org.hibernate.Session;9.import org.hibernate.SessionFactory;10.import org.hibernate.cfg.Configuration;11.import org.hibernate.criterion.Example;12.import org.hibernate.criterion.Order;13.import org.hibernate.criterion.ProjectionList;14.import org.hibernate.criterion.Projections;15.import org.hibernate.criterion.Property;16.import org.hibernate.criterion.Restrictions;17.import org.hibernate.type.Type;18.
19.import com.hb3.pack_01.model.User;20.
21.public class BusinessService {22.
23.    public static void main(String[] args) {24.25.        Configuration config = new Configuration().configure();26.        SessionFactory sessionFactory = config.buildSessionFactory();      27.        Session session = sessionFactory.openSession();28.29.        Criteria criteria = session.createCriteria(User.class);30.        criteria.addOrder(Order.asc("age"));31.        List<?> users = criteria.list();32.        printUserInfo(users);33.34.        criteria = session.createCriteria(User.class);35.        criteria.add(Restrictions.gt("age", new Integer(22)));36.        criteria.add(Restrictions.lt("age", new Integer(27)));37.        users = criteria.list();38.        printUserInfo(users);39.40.        criteria = session.createCriteria(User.class);41.        criteria.add(Restrictions.or( 42.                        Restrictions.eq("age", new Integer(23)), 43.                        Restrictions.isNull("age") 44.                    )); 45.        users = criteria.list();46.        printUserInfo(users);47.48.        criteria = session.createCriteria(User.class);49.        criteria.add(Restrictions.sqlRestriction("{alias}.name LIKE (?)", "%ya%", Hibernate.STRING));50.        users = criteria.list();51.        printUserInfo(users);52.53.        criteria = session.createCriteria(User.class);54.        Integer[] ages = {new Integer(26), new Integer(28)};55.        Type[] types = {Hibernate.INTEGER, Hibernate.INTEGER};56.        criteria.add(Restrictions.sqlRestriction("{alias}.age BETWEEN (?) AND (?)", ages, types));57.        users = criteria.list();58.        printUserInfo(users);59.60.        criteria = session.createCriteria(User.class);61.        criteria.setFirstResult(3); 62.        criteria.setMaxResults(2);63.        users = criteria.list();64.        printUserInfo(users);65.66.        criteria = session.createCriteria(User.class);67.        criteria.setProjection(Projections.rowCount());68.        users = criteria.list();69.        Iterator<?> iterator = users.iterator();70.        while (iterator.hasNext()) {71.            System.out.println(iterator.next());72.        }73.74.        criteria = session.createCriteria(User.class);75.        criteria.setProjection(Projections.avg("age"));76.        users = criteria.list();77.        iterator = users.iterator();78.        while (iterator.hasNext()) {79.            System.out.println(iterator.next());80.        }81.82.        criteria = session.createCriteria(User.class);83.        criteria.setProjection(Projections.groupProperty("age"));84.        users = criteria.list();85.        iterator = users.iterator();86.        while (iterator.hasNext()) {87.            System.out.println(iterator.next());88.        }89.90.        ProjectionList projectionList = Projections.projectionList();91.        projectionList.add(Projections.groupProperty("age"));92.        projectionList.add(Projections.groupProperty("name"));93.        projectionList.add(Projections.rowCount());94.        criteria = session.createCriteria(User.class);95.        criteria.setProjection(projectionList);96.        users = criteria.list();97.        iterator =  users.iterator();98.        while(iterator.hasNext()) {99.            Object[] o = (Object[]) iterator.next();100.            System.out.println(o[0] + "\t" + o[1] + "\t" + o[2]);101.        }102.103.        criteria = session.createCriteria(User.class);104.        criteria.add(Property.forName("name").like("%ya%"));105.        criteria.addOrder(Property.forName("age").desc());106.        users = criteria.list();107.        printUserInfo(users);108.109.        User user = new User();110.        user.setAge(new Integer(26));111.        criteria = session.createCriteria(User.class);112.        criteria.add(Example.create(user));113.        users = criteria.list();114.        printUserInfo(users);115.116.117.        session.close();118.        sessionFactory.close();119.    }120.121.    public static void printUserInfo(List<?> users){122.123.        Iterator<?> iterator = users.iterator();124.        System.out.println("id \t name/age");125.        while (iterator.hasNext()) {126.            User user = (User) iterator.next();127.            System.out.println(user.getId() + " \t " + user.getName() + "/" + user.getAge());128.        }129.    }130.}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索hibernate
, session
, iterator
, import
, criteria
, users
, criteria uilder
, hibernate criteria
,  Criteria
.createCriteria
,以便于您获取更多的相关知识。

时间: 2024-08-31 18:29:38

hibernate3学习笔记(七) Criteria Queries的相关文章

hibernate3学习笔记(十五)|继承映射

这里详细讨论继承映射的3种方式: 1.Table per concrete class 继承关系如下图: 数据表设计如下图: MySQL数据库中执行如下DDL: 1.CREATE TABLE defaultuser (2. id INT(11) NOT NULL auto_increment PRIMARY KEY,3. name VARCHAR(100) NOT NULL default '',4. someProperty VARCHAR(100)5.);6.7.CREATE TABLE p

hibernate3学习笔记(一)

今天开始系统的学习一下hibernate3.3.2 (annotations版)首先去hibernate的官方网站下载hibernate-distribution-3.3.2.GA版本,然后下载slf4j-1.5.8 一.hibernate-annotations-3.4.0.GA,然后在MyEclipse下建立一个java工程,加入如图的jar包.一个是hibernate的核心包hibernate3.jar,然后是lib目录下required下的全部jar,最后是一个是slf4j-1.5.8中

JSP学习笔记(七)-----猜数字游戏

js|笔记 1. 这是一个猜数字的游戏,通过使用JSP调用JavaBean2. 需要两个文件,number.jsp和NumberGuessBean.java3. 先看number.jsp代码:<html><jsp:useBean id="number" class="NumberGuessBean" scope="session" /><jsp:setProperty name="number"

hibernate3学习笔记(二十三)|进阶特性(一)

1.悲观锁定: 在多个客户端可能读取同一笔数据或同时更新一笔数据的情况下,必须要有访问控制的手段,防止同一个数据被修改而造成混乱,最简单的手段就是对资料进行锁定,在自己进行资料读取或更新等动作时,锁定其他客户端不能对同一笔资料进行任何的动作. 悲观锁定(Pessimistic Locking)一如其名称所示,悲观的认定每次资料存取时,其它的客户端也会存取同一笔资料,因此对该笔资料进行锁定,直到自己操作完成後解除锁定. 悲观锁定通常透过系统或资料库本身的功能来实现,依赖系统或资料库本身提供的锁定机

hibernate3学习笔记(十三)|Dynamic Model

在构造系统原型阶段,由于需求尚未确定,程序中的POJO会在开发过程中存在相当大的变动,于是在Hibernate3中引入了动态模型的概念.如此不需要事先实际定义POJO. 数据库DDL如下: 1.CREATE TABLE user (2. id INT(11) NOT NULL auto_increment PRIMARY KEY,3. name VARCHAR(100) NOT NULL default '',4. age INT5.); User.hbm.xml配置文件中设定entity-na

hibernate3学习笔记(八) DetachedCriteria

依然接着前面的例子:http://www.bianceng.cn/Programming/Java/201101/23637.htm 示例代码如下: 1.package com.hb3.pack_01;2.3.import java.util.Iterator;4.import java.util.List;5. 6.import org.hibernate.Criteria;7.import org.hibernate.Session;8.import org.hibernate.Sessio

hibernate3学习笔记(五) saveOrUpdate方法

还是参考前面的例子:http://blog.csdn.net/kunshan_shenbin/archive/2008/09/02/2864883.aspx 修改User.hbm.xml文件如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

设计模式学习笔记(七)—Observer观察者模式

<设计模式>一书对Observer是这样描述的: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并自动更新. 举个例子,在现实生活中,父母与孩子是最亲密的人.父母做为孩子(被观察者)的监护人(观察者),当孩子和别人打架后,一定会告诉他的父母这件事(呵呵,当孩子很小时,通常会告诉父母,长大了以后,可能不会,这里的孩子指的是小孩子),当孩子获得奖学金后,也一定会告诉他的父母.下面我用Observer实现这个程序.代码如下: import java.ut

Unmi的Struts2学习笔记(七)

小时候,大人们的谆谆教诲:做人要诚实.并真以此为做人原则.长大后才知 道何谓社会.譬如530,再如艳照门,风声乍起之时,有人辟谣:直东窗事发后, 道貌岸然者有之.恬不知耻者亦有之.原本成功就不属于规矩之人.纵观,无玄 武门之血腥,何来一代宗皇:老毛若不有理而造反,一味守规矩,或为一介书匠 耳.雅各一碗红豆汤便谋得以扫的长子权,再行骗去亚伯拉罕的祝福,并顺理成 章让耶和华与他同在,可见上帝之"贤明"?.高等教育中有一句,顺利的是骗 子,倒霉的是傻子,我是?不还有企业家的原罪吗?有时竟被社