Hibernate中HQL语句的使用(二)

2014-11-24 11:30:18 · 作者: · 浏览: 13
* 参数的顺序从0开始
*/
@Test
public void test06(){
Session session = HibernateUtils.getSession();
String hql = "select d from Dept d where dname= ";
Query query = session.createQuery(hql);
query.setString(0, "部门1");
List depts = query.list();
for (Dept dept : depts) {
System.out.println(dept.getDname());
}
HibernateUtils.close(session);
}
/**
* 对象查询,条件查询
*/
@Test
public void test07(){
Session session = HibernateUtils.getSession();
String hql = "select d from Dept d where dname= and did= ";
List depts = session.createQuery(hql).
setString(0, "部门1").setInteger(1, 1).list();
for (Dept dept : depts) {
System.out.println(dept.getDname());
}
HibernateUtils.close(session);
}
/**
* 查询所有员工信息
* 分页查询
* setFirstResult();确定查询的起点
* setMaxResult();确定查询的条数
*/
@Test
public void test08(){
Session session = HibernateUtils.getSession();
String hql = "from Emp";
int currentPage = 5;
int pageSize = 5;
List emps = session.createQuery(hql).
setFirstResult((currentPage-1)*pageSize).
setMaxResults(pageSize).list();
for (Emp emp : emps) {
System.out.println(emp.getEname());
}
HibernateUtils.close(session);
}
/**
* 查询所有员工信息
* 查询最大页数
* 首先查询所有记录数
*/
@Test
public void test09(){
Session session = HibernateUtils.getSession();
String hql = "select count(*) from Emp";
List list = session.createQuery(hql).list();
int rec = list.get(0).intValue();
int pageSize = 7;
System.out.println("最大页数为:");
System.out.println(rec%pageSize == 0 rec/pageSize:rec/pageSize+1);
HibernateUtils.close(session);
}
/**
* 使用命名查询
* 将hql语句写在映射文件中
* 查询ID号小于20的员工信息
* from Emp where eid<20
*
from Emp where eid<
]]>
getNamedQuery(),获取Query对象
*/
@Test
public void test10(){
Session session = HibernateUtils.getSession();
Query query = session.getNamedQuery("findEmpByEid");
query.setInteger(0, 20);
List emps = query.list();
for (Emp emp : emps) {
System.out.println(emp.getEid()+":"+emp.getEname());
}
HibernateUtils.close(session);
}
/**
* 在hibernate 中使用sql查询
* select * from t_emp;
*/
@Test
public void test11(){
Session session = HibernateUtils.getSession();
String sql = "select * from t_emp";
SQLQuery query = session.createSQLQuery(sql);
List list = query.list();
for (Object[] o : list) { www.2cto.com
System.out.println(o[0]+":"+o[1]+":"+o[2]);
}
HibernateUtils.close(session);
}
}