一点点学习Hibernate3.6 -Criteria(面向对象的查询)

// 1,简单查询(查询所有的Employee)
// Criteria criteria = session.createCriteria(Employee.class);
// criteria.add(Restrictions.gt("id", 5)); // id大于5
// criteria.add(Restrictions.le("id", 10)); // id小于等于10
// criteria.addOrder(Order.desc("id")); // 按id降序排列
Criteria criteria = session.createCriteria(Employee.class)//
        .add(Restrictions.gt("id", 5)) // id大于5
        .add(Restrictions.le("id", 10)) // id小于等于10
        .addOrder(Order.asc("name")) // 第1顺序,按name升序排列
        .addOrder(Order.desc("id")); // 第2顺序按id降序排列
// 执行查询,得到结果集合
List list = criteria.list();
// 显示结果
for (Object obj : list) {
    if (obj.getClass().isArray()) { // 如果是数组
        String result = Arrays.toString((Object[]) obj);
        System.out.println(result);
    } else { // 如果不是数组,则使用toString()的结果
        System.out.println(obj);
    }
}
// 执行查询,得到唯一的结果。如果查询出了多个结果,则会抛异常。
// Object result = criteria.uniqueResult();
 

 


配置数据库连接池(c3p0)

使用Hibernate包中自带的c3p0.只需在主配置文件中配置几个关键属性即可:

<!-- 使用c3p0连接池  配置连接池提供的供应商-->
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<!--在连接池中可用的数据库连接的最少数目 -->
<property name="c3p0.min_size">5</property>
<!--在连接池中所有数据库连接的最大数目  -->
<property name="c3p0.max_size">20</property>
<!--设定数据库连接的过期时间,以秒为单位,
如果连接池中的某个数据库连接处于空闲状态的时间超过了timeout时间,就会从连接池中清除 -->
<property name="c3p0.timeout">120</property>
<!--每3000秒检查所有连接池中的空闲连接 以秒为单位-->
<property name="c3p0.idle_test_period">3000</property> 

 

你可能感兴趣的:(Hibernate,Criteria)