一 关于两个函数
setFirstResult(从第几条取):如果不填写参数,从0开始计算。
setMaxResult(取出几条)。
二 这两个函数的应用
1 代码
package com.cakin.view;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.cakin.util.HibernateUtil;
import com.sina.domain.Studcourse;
import com.sina.domain.Student;
public class TestMain {
public static void main(String[] args) {
//这我们举例说明hql使用
Session session=null;
Transaction tx=null;
try {
session=HibernateUtil.getCurrentSession();
tx=session.beginTransaction();
//请按照学生的年龄从小->大,取出第3到第5个学生
List<Student> list=session.createQuery
("from Student order by sage").setFirstResult(2)
.setMaxResults(3).list();
for(Student s: list){
System.out.println(s.getSname()+" "+s.getSage());
}
tx.commit();
} catch (Exception e) {
e.printStackTrace();
if(tx!=null){
tx.rollback();
}
throw new RuntimeException(e.getMessage());
// TODO: handle exception
}finally{
if(session!=null&&session.isOpen()){
session.close();
}
}
}
}2 测试结果
林青霞 22
林可欣 22
刘德华 23
三 分页显示学生
1 代码
package com.cakin.view;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.cakin.util.HibernateUtil;
import com.sina.domain.Studcourse;
import com.sina.domain.Student;
public class TestMain {
public static void main(String[] args){
showResultByPage(3);
}
//分页函数
private static void showResultByPage(int pageSize){
//设置分页的变量
int pageNow=1;
int pageCount=1;//计算
int rowCount=1;//这个需要查询
Session session=null;
Transaction tx=null;
try {
session=HibernateUtil.getCurrentSession();
tx=session.beginTransaction();
//查询出rowcount
rowCount=Integer.parseInt(session.createQuery("select count(*) from Student").uniqueResult().toString());
pageCount=(rowCount-1)/pageSize+1;
//现在我们可以循环的显示每页的信息
for(int i=1;i<=pageCount;i++){
System.out.println("************第"+i+"页************");
List<Student> list=session.createQuery("from Student").setFirstResult((i-1)*pageSize)
.setMaxResults(pageSize).list();
for(Student s: list){
System.out.println(s.getSname()+" "+s.getSdept());
}
}
tx.commit();
}catch(Exception e){
e.printStackTrace();
if(tx!=null){
tx.rollback();
}
throw new RuntimeException(e.getMessage());
}finally{
if(session!=null&&session.isOpen()){
session.close();
}
}
}
}2 测试结果
************第1页************
林青霞 计算机系
刘德华 外语系
成龙 化学系
************第2页************
林可欣 计算机系
周华健 生物系
周润发 数学系

2567

被折叠的 条评论
为什么被折叠?



