`
robinrain
  • 浏览: 60424 次
  • 性别: Icon_minigender_1
  • 来自: 威海
社区版块
存档分类
最新评论

分页代码实例

阅读更多

 分页用于从数据库搜索出符合条件的数据,分页显示

 

BO

public class exampleBOImpl implements exampleBO {

	private ExampleDAO exampleDAO;
        //取出所有符合条件的数据
	@Override
	public List<UserInfo> selectExampleListByPage(Example example, PageBean pb)
			throws BusinessException {
		return this.exampleDAO.selectExampleListByPage(example, pb);
	}
        //计算当前数据的总是
	@Override
	public int selectExampleListCount(Example example) throws BusinessException {
		return this.exampleDAO.getExampleListCount(example);
	}
}
 

DAO

public class ExampleDAOImpl extends SqlSessionDaoSupport implements ExampleDAO{
	
	private String mapper = "com.XXXXXX.example.";

	@SuppressWarnings("unchecked")
	@Override
	public List<Example> selectExampleListByPage(Example example, PageBean pb) {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("example", example);
		if(null != pb){
			map.put("start", pb.getStartRow() - 1);
			map.put("pageSize", pb.getPageSize());
		}
		return getSqlSession().selectList(mapper + "selectExampleListByPage", map);
	}

	@Override
	public int selectExampleListCount(Example Example) {
		return (Integer) getSqlSession().selectOne(mapper + "selectExampleListCount", Example);
	}
}

 Controller

@Controller
@RequestMapping(value = "/example")
@SessionAttributes("employee")
public class ExampleController {

	private static Logger logger = Logger.getLogger(ExampleController.class);
	@Autowired
	private ExampleBO exampleBO;
	
	@RequestMapping("/list.htm")
	public ModelAndView listExample(@ModelAttribute("example") ExampleBean example,Integer pageNo) throws BusinessException {
		Map<String, Object> map = new HashMap<String, Object>();

		// 分页 构建pageBean
		PageBean pb = null;
		pb = new PageBean(pageNo, exampleBO.getExampleListCount(example),10,7);
		map.put("paging", pb);

		// 列表显示所有住户信息
		List<Example> allExampleList = this.exampleBO.getExampleList(example, pb,);
		map.put("example", example);
		map.put("allExampleList", allExampleList);

		return new ModelAndView("/example/list", map);
	}
}

 pagebean的配置:

import org.apache.log4j.Logger;

public class PageBean {

	private static Logger log = Logger.getLogger(PageBean.class);
	// 当前页码
	private int currentPage = 1;
	// 总数量
	private int totalCount = 0;
	// 总页数
	private int totalPage = 1;
	// 开始页
	private int startPage = 1;
	// 结束页
	private int endPage = 1;
	// 每页大小
	private int pageSize = 10;
	// 每次显示多少页
	private int showPages = 7;
	// 第一页
	private boolean first = false;
	// 最后页
	private boolean last = false;
	// 上一页
	private boolean pre = false;
	// 下一页
	private boolean next = false;
	// 开始行 从1开始计算
	private int startRow = 1;
	// 结束行
	private int endRow = 1;
	// url
	private int url;

	public PageBean(Integer currentPage, Integer totalCount) {
		if (totalCount == null) {
			this.totalCount = 0;
		} else {
			this.totalCount = totalCount;
		}
		if (currentPage == null || currentPage <= 0) {
			this.currentPage = 1;
		} else {
			this.currentPage = currentPage;
		}
		this.init();
	}

	public PageBean(Integer currentPage, Integer totalCount, Integer pageSize,
			Integer showPages) {
		if (totalCount == null) {
			this.totalCount = 0;
		} else {
			this.totalCount = totalCount;
		}
		if (currentPage == null || currentPage <= 0) {
			this.currentPage = 1;
		} else {
			this.currentPage = currentPage;
		}
		if (pageSize == null || pageSize == 0) {
			this.pageSize = 10;
		} else {
			this.pageSize = pageSize;
		}
		if (showPages == null || showPages == 0) {
			this.showPages = 10;
		} else {
			this.showPages = showPages;
		}
		// 初始化
		this.init();
	}

	private void init() {
		if (this.totalCount != 0) {
			if ((this.totalCount / this.pageSize) != 0
					&& (this.totalCount % this.pageSize == 0)) {
				this.totalPage = this.totalCount / this.pageSize;
			} else {
				this.totalPage = this.totalCount / this.pageSize + 1;
			}
			if ((this.currentPage / this.showPages) != 0
					&& (this.currentPage % this.showPages == 0)) {
				this.startPage = (this.currentPage / this.showPages - 1)
						* this.showPages + 1;
			} else {
				this.startPage = (this.currentPage / this.showPages)
						* this.showPages + 1;
			}
			if ((this.startPage + this.showPages) <= this.totalPage) {
				this.endPage = (this.startPage + this.showPages - 1);
			} else {
				this.endPage = this.totalPage;
			}
			// 校验??
			if (this.endPage < this.startPage) {
				this.startPage = (this.endPage / this.showPages)
						* this.showPages + 1;
			}

			if (this.endPage <= this.currentPage) {
				this.currentPage = this.endPage;
			}

			if (this.currentPage == 1) {
				this.first = false;
				this.pre = false;
			} else {
				this.first = true;
				this.pre = true;
			}

			if (this.currentPage == this.totalPage) {
				this.last = false;
				this.next = false;
			} else {
				this.last = true;
				this.next = true;
			}

			this.startRow = (this.currentPage - 1) * this.pageSize + 1;
			this.endRow = this.startRow + this.pageSize - 1;
		}
		log.debug("currentPage::" + this.currentPage);
		log.debug("totalCount::" + this.totalCount);
	}
}

 xml里面的搜索语句

<select id="selectExampleListByPage" parameterType="Map" resultMap="exampleResult">
  select * from example_table 
  <if test="example.name!=null and example.name!=''">
    and name = #{example.name}
  </if>				
  <if test="start != null and pageSize != null">
    limit #{start},#{pageSize}	
  </if>
</select>

<select id="selectExampleListCount" parameterType="example" resultType="int">
  select count(*)  from example_table 
</select>
 

页面的配置,将此句写在FORM里:

<jsp:include page="../paging/paging.jsp" />
 

 

分享到:
评论

相关推荐

    java通用分页代码实例.rar

    这个"java通用分页代码实例"提供了一种适用于任意数据库的解决方案,具有高可移植性和易用性。 分页的核心在于对数据库查询结果进行分割,只返回当前页面所需的数据,同时提供翻页链接或按钮,允许用户浏览更多的...

    .NET 纯分页代码实例

    ### .NET纯分页代码实例解析 在.NET框架下实现数据分页是常见的需求之一,尤其是在Web应用程序中处理大量数据时。本篇文章将基于提供的代码片段深入探讨如何使用ASP.NET Web Forms来实现纯分页功能。 #### 前端...

    struts2分页代码的示例

    下面是我用Struts2做的一个分页显示实例,基本的思路是:把数据库表中的每一行数据封装成一个对象,用一个返回类型为List的方法返回这些对象,接着在Struts2的action里面定义一个List属性,用这个List来接收从数据库...

    javascript分页代码实例分享(js分页)

    JavaScript分页代码实例分享 JavaScript分页代码实例分享是指使用JavaScript语言来实现分页功能的代码实例。该实例主要用于实现分页的功能,例如在列表、表格或其他数据展示场景中,通过分页来限制数据的显示数量,...

    JAVA分页代码实例.doc

    本实例主要展示了如何在Java中实现一个简单的分页工具类`PageUtil`。 `PageUtil`类包含了与分页相关的属性和方法: 1. **属性**: - `pageSize`: 每页显示的条数,用于定义每一页的数据量。 - `recordCount`: ...

    jquery分页代码示例

    在这个“jquery分页代码示例”中,我们将探讨如何使用 jQuery 实现一个简单的分页功能。 首先,理解分页的基本原理是必要的。分页将一个大的数据集划分为多个较小的部分,每个部分称为一页。用户可以通过点击页码或...

    jquery 分页代码

    jquery 分页代码,Ajax无刷新分页效果,简单易开发

    学习php分页代码实例

    在学习PHP分页代码实例之前,需要掌握以下知识点: 1. PHP基础语法:了解PHP的基本语法规则,包括变量声明、循环、条件判断、字符串处理等。 2. MySQL数据库操作:掌握如何使用PHP连接MySQL数据库,以及基本的增删...

    万能的php分页类实例代码

    本实例代码提供了一种“万能”的PHP分页类,它可以帮助开发者轻松实现各种场景下的分页需求。 首先,让我们了解分页的基本原理。分页通常通过计算总页数、当前页数、每页显示的记录数来实现。当用户点击页码或使用...

    SQL分页处理实例代码

    SQL分页处理实例代码,SQL分页处理实例代码,SQL分页处理实例代码。。。

    功能齐全的php分页代码【带注释,数据库】

    总的来说,这个PHP分页代码实例提供了一个完整的解决方案,涵盖了分页的各个方面,从数据库连接到安全的查询构建,再到页面渲染和用户体验。对于PHP新手来说,这是一个很好的学习资源,可以帮助他们快速理解和掌握...

    JS+HTML分页代码

    本示例提供的"JS+HTML分页代码"是一个利用JavaScript(JS)和超文本标记语言(HTML)实现的分页功能,主要包含了首页、前页、后页、尾页以及自定义分页页号的功能。 **HTML基础**: HTML是网页的基础,用于构建页面...

    项目分页代码 分页问题解决实例 分页解决方案

    解决项目分页问题的经典实例 帮您解决让人头疼的分页

    Jquery Ajax分页(有实例)

    本篇文章将深入探讨jQuery AJAX分页的原理与实践,通过具体的实例来展示如何实现炫酷的分页功能。 首先,理解jQuery AJAX的核心概念。AJAX允许我们在不刷新整个页面的情况下,与服务器交换数据并更新部分网页内容。...

    一个简洁的jquery文章分页系统

    在上述代码中,`itemsPerPage`定义了每页显示的文章数量,`currentPage`记录当前页码。`showPage`函数负责隐藏所有文章并显示指定页码的文章。分页链接的点击事件被绑定到`click`函数,当用户点击分页链接时,更新...

    ssh分页显示实例代码

    这个一个关于String+Spring+Hibernate框架,可以分页显示的实例代码.

    JSP分页代码

    总结来说,这个JSP分页代码实例涉及了以下几个关键点: 1. 使用JDBC连接数据库。 2. 处理HTTP请求参数以获取页码。 3. 执行SQL查询并获取结果集。 4. 计算分页所需的总页数。 5. 在HTML中动态生成分页链接和显示数据...

    JAVA Web分页实例代码

    本实例代码提供了一种实现分页的方法,旨在帮助开发者理解和应用到自己的项目中。 分页的核心在于如何计算当前页的数据范围以及如何构建导航链接。以下将详细阐述分页实现的几个关键步骤: 1. **数据查询**:首先...

Global site tag (gtag.js) - Google Analytics