欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > 内容正文

MyBatis与Struts2分页查询,mybatisstruts2分页

来源: 开发者 投稿于  被查看 28595 次 评论:176

MyBatis与Struts2分页查询,mybatisstruts2分页


xml

dao

//分页方法:这两个one和two不是第几页,也不是每页几条,这是通过index和size计算出来的,笔记在有道笔记
	List fenye(@Param("one")int one,@Param("two")int two);

action

package com.bdqn.action;


import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.ibatis.session.SqlSession;
import org.apache.struts2.ServletActionContext;

import com.alibaba.fastjson.JSONArray;
import com.bdqn.dao.GoodsMapper;
import com.bdqn.entity.Goods;
import com.bdqn.utils.MyBatis;
import com.opensymphony.xwork2.ActionSupport;


public class GoodsAction extends ActionSupport{
//默认设置第一次访问第一个页面
	private int index = 1;
	//每页显示两条数据
	private int size = 2;
	//一共有几页
	private int count = 1;

//分页查询方法
	public String fenye() throws Exception {
		SqlSession session = MyBatis.createSqlSession();
		//先获取数据库该表有几条数据total,直接写一个select count(1) from goods就可以了
		int total = session.getMapper(GoodsMapper.class).findCount();
		//用页面量size和total来计算一共该显示几页,就算最后一页只有一条数据,也应该用一页来显示,所以必须先计算total/size是不是等于0
		count = total%size==0total/size:(total/size)+1;
		//当一直点击上一页,到了第一页时就不能让index继续减小,因为没有第0页
		if (index<1) {
			index=1;
		//同理到了最大页数的时候也不能让他继续加大
		}else if(index>count){
			index=count;
		}
		//这是计算分页语句需要的参数值小于第几条数据
		int one = (((index-1)*size)+1)+size;
		//这是计算该从第几条数据开始显示
		int two = ((index-1)*size)+1;
		
		//分页方法
		List list = session.getMapper(GoodsMapper.class).fenye(one, two);
		//使用完关闭下
		MyBatis.closeSqlSession(session);
		
		//获取request和sqlsession 
		HttpServletRequest request= ServletActionContext.getRequest();
		HttpSession session1 = request.getSession();
		
		//在把值存入session之前先清空原先的值
		session1.removeAttribute("list");
		session1.setAttribute("list", list);

		return SUCCESS;
	}

public int getIndex() {
		return index;
	}
	public void setIndex(int index) {
		this.index = index;
	}
	public int getSize() {
		return size;
	}
	public void setSize(int size) {
		this.size = size;
	}
	public int getCount() {
		return count;
	}
	public void setCount(int count) {
		this.count = count;
	}
}

页面代码:


ID 商品名 价格 操作
${li.id} ${li.name} ${li.price}

共${count}/${index}页


相关频道:

用户评论