Hibernate4详解(六)

2014-11-24 10:41:08 · 作者: · 浏览: 5

System.out.println("合计:" + values[4]);
session.close();
}

/** 统计函数 */
@Test
public void test_statistics2() {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
String hql = "select deptno,avg(sal) from Emp group by deptno having avg(sal)>2000 order by deptno";
Query query = session.createQuery(hql);
List list = query.list();
for (Object[] arr : list) {
System.out.println("部门编号:" + arr[0] + "\t" + "平均薪资:" + arr[1]);
}
session.close();
}

/** 使用函数(和底层数据库有关) */
@Test
public void test_function() {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
String hql = "select to_char(hiredate,'yyyy-mm-dd') from Emp";
Query query = session.createQuery(hql);
List list = query.list();
for (String ename : list) {
System.out.println(ename);
}
session.close();
}

/** 排序 */
@Test
public void test_orderby() {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
String hql = "from Emp order by job,sal desc";
Query query = session.createQuery(hql);
List list = query.list();
show(list);
session.close();
}

// 遍历集合
private void show(List list) {
for (Emp emp : list) {
System.out.println(emp);
}
}
}

QBC

Java代码
package org.springfuncs.qbc;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.junit.Test;
import org.springfuncs.domain.Emp;
import org.springfuncs.util.HibernateUtil;

public class TestQBC {

/** 查询全部 */
@Test
public void test_list() {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
Criteria criteria = session.createCriteria(Emp.class);
criteria.setCacheable(true); // 设置缓存
List list = criteria.list();
show(list);
session.close();
}

/** 查询全部 */
@Test
public void test_iterator() {
// 没有iterator
}

/** 分页查询 */
// select * from
// ( select e.*, rownum rn from ( select * from emp ) e where rownum <= 10 )
// where rn > 1
@Test
public void test_pagination() {
int pageNo = 1; // 当前页数
int pageSize = 5; // 每页显示条数

SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
Criteria criteria = session.createCriteria(Emp.class);
criteria.setFirstResult((pageNo - 1) * pageSize);
criteria.setMaxResults(pageSize);
criteria.setCacheable(true); // 设置缓存
List list = criteria.list();
show(list)