分页用于从数据库搜索出符合条件的数据,分页显示
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通用分页代码实例"提供了一种适用于任意数据库的解决方案,具有高可移植性和易用性。 分页的核心在于对数据库查询结果进行分割,只返回当前页面所需的数据,同时提供翻页链接或按钮,允许用户浏览更多的...
### .NET纯分页代码实例解析 在.NET框架下实现数据分页是常见的需求之一,尤其是在Web应用程序中处理大量数据时。本篇文章将基于提供的代码片段深入探讨如何使用ASP.NET Web Forms来实现纯分页功能。 #### 前端...
下面是我用Struts2做的一个分页显示实例,基本的思路是:把数据库表中的每一行数据封装成一个对象,用一个返回类型为List的方法返回这些对象,接着在Struts2的action里面定义一个List属性,用这个List来接收从数据库...
JavaScript分页代码实例分享 JavaScript分页代码实例分享是指使用JavaScript语言来实现分页功能的代码实例。该实例主要用于实现分页的功能,例如在列表、表格或其他数据展示场景中,通过分页来限制数据的显示数量,...
本实例主要展示了如何在Java中实现一个简单的分页工具类`PageUtil`。 `PageUtil`类包含了与分页相关的属性和方法: 1. **属性**: - `pageSize`: 每页显示的条数,用于定义每一页的数据量。 - `recordCount`: ...
在这个“jquery分页代码示例”中,我们将探讨如何使用 jQuery 实现一个简单的分页功能。 首先,理解分页的基本原理是必要的。分页将一个大的数据集划分为多个较小的部分,每个部分称为一页。用户可以通过点击页码或...
jquery 分页代码,Ajax无刷新分页效果,简单易开发
在学习PHP分页代码实例之前,需要掌握以下知识点: 1. PHP基础语法:了解PHP的基本语法规则,包括变量声明、循环、条件判断、字符串处理等。 2. MySQL数据库操作:掌握如何使用PHP连接MySQL数据库,以及基本的增删...
本实例代码提供了一种“万能”的PHP分页类,它可以帮助开发者轻松实现各种场景下的分页需求。 首先,让我们了解分页的基本原理。分页通常通过计算总页数、当前页数、每页显示的记录数来实现。当用户点击页码或使用...
SQL分页处理实例代码,SQL分页处理实例代码,SQL分页处理实例代码。。。
总的来说,这个PHP分页代码实例提供了一个完整的解决方案,涵盖了分页的各个方面,从数据库连接到安全的查询构建,再到页面渲染和用户体验。对于PHP新手来说,这是一个很好的学习资源,可以帮助他们快速理解和掌握...
本示例提供的"JS+HTML分页代码"是一个利用JavaScript(JS)和超文本标记语言(HTML)实现的分页功能,主要包含了首页、前页、后页、尾页以及自定义分页页号的功能。 **HTML基础**: HTML是网页的基础,用于构建页面...
解决项目分页问题的经典实例 帮您解决让人头疼的分页
本篇文章将深入探讨jQuery AJAX分页的原理与实践,通过具体的实例来展示如何实现炫酷的分页功能。 首先,理解jQuery AJAX的核心概念。AJAX允许我们在不刷新整个页面的情况下,与服务器交换数据并更新部分网页内容。...
在上述代码中,`itemsPerPage`定义了每页显示的文章数量,`currentPage`记录当前页码。`showPage`函数负责隐藏所有文章并显示指定页码的文章。分页链接的点击事件被绑定到`click`函数,当用户点击分页链接时,更新...
这个一个关于String+Spring+Hibernate框架,可以分页显示的实例代码.
总结来说,这个JSP分页代码实例涉及了以下几个关键点: 1. 使用JDBC连接数据库。 2. 处理HTTP请求参数以获取页码。 3. 执行SQL查询并获取结果集。 4. 计算分页所需的总页数。 5. 在HTML中动态生成分页链接和显示数据...
本实例代码提供了一种实现分页的方法,旨在帮助开发者理解和应用到自己的项目中。 分页的核心在于如何计算当前页的数据范围以及如何构建导航链接。以下将详细阐述分页实现的几个关键步骤: 1. **数据查询**:首先...