strtus2+hibernate查询数据表art中的数据并实现分页,很乱,如何梳理其中的逻辑关系?
完全不知道写的对不对,也不知道怎么进行,特别是action调用dao层方法的时候,dao层方法即要实现分页,又要列出数据库内容,具体应该怎么写,请大神帮助,解决加分!以下...
完全不知道写的对不对,也不知道怎么进行,特别是action调用dao层方法的时候,dao层方法即要实现分页,又要列出数据库内容,具体应该怎么写,请大神帮助,解决加分!
以下代码不完整,由于字数限制,省略无需检查的代码
查询功能OK
dao层的方法
private int pageSize = 5; //每页显示数据量,默认为5
private int pageno = 1; //当前页数,默认首页
private int pagecount = -1; //总页数
private int datacount = -1; //数量总数
// 跳到第一页
public List<Art> first(int pageno) {
pageno=1;
List<Art> list=new ArrayList<Art>();
Query query = session.createQuery("from Art");
query.setFirstResult((pageno-1)*this.pageSize).setMaxResults(this.pageSize);
list=query.list();
return list;
}
// 跳到最后一页
public List<Art> last(int pageno) {
Query query = session.createQuery("from Art");
query.setFirstResult((this.pageno-1)*this.pageSize).setMaxResults(this.pageSize);
List list = (List)query.list();
pagecount=list.size();
pageno = pagecount;
return list;
}
// 取得上一页
public void previous() {
if(pageno>1)
pageno--;
}
// 取得下一页
public void next() {
if (pageno < pagecount) {
pageno++;
}
}
/**
*set/get方法
*/
//得到当前页
public int getPageno() {
if(datacount==0){
return 1;
}else if(pageno<=1){
return 1;
}else if(pageno>=pagecount){
return pagecount;
}else{
return pageno;
}
}
//得到总页数
public int getPagecount() {
Query query = session.createQuery("from Art");
List list = (List)query.list();
this.datacount = list.size();
if(datacount%pageSize == 0){
this.pagecount = datacount/pageSize;
}else{
this.pagecount = datacount/pageSize + 1;
}
return this.pagecount;
}
//得到总条数
public int getDatacount() {
Query query = session.createQuery("from Art");
List list = (List)query.list();
this.datacount = list.size();
return this.datacount;
}
action类(adi是dao层new出来的)
//跳到第一页
public String toFirst()throws Exception{
int pageno=Integer.parseInt(request.getParameter("firstPage"));
List<Art> listArt=adi.first(pageno);
request.setAttribute("listart", listArt);
return "success";
}
//跳到最后一页
public String toLast()throws Exception{
//int lastPage= Integer.parseInt(request.getParameter("page"));
int pageno=Integer.parseInt(request.getParameter("lastPage"));
List<Art> listArt=adi.last(pageno);
request.setAttribute("listart", listArt);
return "success";
}
//上一页
public void toPrevious()throws Exception{
adi.previous();
}
//下一页
public void toNext()throws Exception{
adi.next();
} 展开
以下代码不完整,由于字数限制,省略无需检查的代码
查询功能OK
dao层的方法
private int pageSize = 5; //每页显示数据量,默认为5
private int pageno = 1; //当前页数,默认首页
private int pagecount = -1; //总页数
private int datacount = -1; //数量总数
// 跳到第一页
public List<Art> first(int pageno) {
pageno=1;
List<Art> list=new ArrayList<Art>();
Query query = session.createQuery("from Art");
query.setFirstResult((pageno-1)*this.pageSize).setMaxResults(this.pageSize);
list=query.list();
return list;
}
// 跳到最后一页
public List<Art> last(int pageno) {
Query query = session.createQuery("from Art");
query.setFirstResult((this.pageno-1)*this.pageSize).setMaxResults(this.pageSize);
List list = (List)query.list();
pagecount=list.size();
pageno = pagecount;
return list;
}
// 取得上一页
public void previous() {
if(pageno>1)
pageno--;
}
// 取得下一页
public void next() {
if (pageno < pagecount) {
pageno++;
}
}
/**
*set/get方法
*/
//得到当前页
public int getPageno() {
if(datacount==0){
return 1;
}else if(pageno<=1){
return 1;
}else if(pageno>=pagecount){
return pagecount;
}else{
return pageno;
}
}
//得到总页数
public int getPagecount() {
Query query = session.createQuery("from Art");
List list = (List)query.list();
this.datacount = list.size();
if(datacount%pageSize == 0){
this.pagecount = datacount/pageSize;
}else{
this.pagecount = datacount/pageSize + 1;
}
return this.pagecount;
}
//得到总条数
public int getDatacount() {
Query query = session.createQuery("from Art");
List list = (List)query.list();
this.datacount = list.size();
return this.datacount;
}
action类(adi是dao层new出来的)
//跳到第一页
public String toFirst()throws Exception{
int pageno=Integer.parseInt(request.getParameter("firstPage"));
List<Art> listArt=adi.first(pageno);
request.setAttribute("listart", listArt);
return "success";
}
//跳到最后一页
public String toLast()throws Exception{
//int lastPage= Integer.parseInt(request.getParameter("page"));
int pageno=Integer.parseInt(request.getParameter("lastPage"));
List<Art> listArt=adi.last(pageno);
request.setAttribute("listart", listArt);
return "success";
}
//上一页
public void toPrevious()throws Exception{
adi.previous();
}
//下一页
public void toNext()throws Exception{
adi.next();
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询