Hibernate4详解(八)

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

// criteria.add(Restrictions.like("ename", "S%", MatchMode.START));
// criteria.add(Restrictions.not(Restrictions.like("ename", "S%", MatchMode.START)));

// criteria.add(Restrictions.isNull("comm"));
// criteria.add(Restrictions.not(Restrictions.isNull("comm")));

// criteria.add(Restrictions.and(Restrictions.ge("sal", 3000.0), Restrictions.le("sal", 5000.0)));
criteria.add(Restrictions.ne("sal", 3000.0));
List list = criteria.list();
show(list);
session.close();
}

/** 统计函数 */
@Test
public void test_statistics1() {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
Criteria criteria = session.createCriteria(Emp.class);
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.rowCount());
projectionList.add(Projections.min("sal"));
projectionList.add(Projections.max("sal"));
projectionList.add(Projections.avg("sal"));
projectionList.add(Projections.sum("sal"));
criteria.setProjection(projectionList);
Object[] values = (Object[]) criteria.uniqueResult();
System.out.println("总数:" + values[0]);
System.out.println("最小值:" + values[1]);
System.out.println("最大值:" + values[2]);
System.out.println("平均值:" + values[3]);
System.out.println("合计:" + values[4]);
session.close();
}

/** 统计函数 */
// select deptno,avg(sal) from Emp group by deptno having avg(sal)>2000 order by deptno;
@Test
public void test_statistics2() {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
Criteria criteria = session.createCriteria(Emp.class);
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.property("deptno"));
projectionList.add(Projections.avg("sal"));
projectionList.add(Projections.groupProperty("deptno"));
criteria.setProjection(projectionList);
// TODO having 怎么表示 暂时没有找到
criteria.addOrder(Order.asc("deptno"));
List list = criteria.list();

for (Object[] arr : list) {
System.out.println("部门编号:" + arr[0] + "\t" + "平均薪资:" + arr[1]);
}
session.close();
}

/** 使用函数(和底层数据库有关) */
@Test
public void test_function() {
// TODO
}

/** 排序 */
@Test
public void test_orderby() {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
Criteria criteria = session.createCriteria(Emp.class);
criteria.addOrder(Order.asc("job"));
criteria.addOrder(Order.desc("sal"));
List list = criteria.list();
show(list);
session.close();
}

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


QBE

Java代码
pack