该分页功能中心思想:
001、为Page类设置 当前页,总记录数,每页记录数
002、将查询的结果集复制给Page的属性容器
003、向前台页面返回Page
做到这三点,其他过程可自己发挥
1、系统常量类
public class Conv
{
// 每页显示条数
public static int pageSize=10;
//登录后放在Session中的User信息
}
2、Page类,包含了可以存放List的容器
public class Page
{
/**当前页*/
private int curPage;
/**总页数*/
private int total;
/**总的记录数*/
private int sum;
/**结果集*/
private List result;
public Page(){}
public Page(int curPage,int sum) {
this.curPage = curPage;
this.sum = sum;
int totalPage =
(int) Math.ceil(sum/Double.parseDouble(Conv.pageSize + ""));
if (totalPage == 0)
totalPage = 1;
this.total=totalPage;
}
public int getCurPage() {
return curPage;
}
public void setCurPage(int curPage) {
this.curPage = curPage;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getSum() {
return sum;
}
public void setSum(int sum) {
this.sum = sum;
}
public List getResult() {
return result;
}
public void setResult(List result) {
this.result = result;
}
}
3、UnitService类获取SqlSession,利用mybatis的RowBounds进行分页,执行sql语句获得结果集
public class UnitService
{
private static UnitService unitService = null;
Logger LOG = Logger.getLogger(DeptService.class);
private UnitService(){}
public static UnitService getInstance(){
if(unitService==null){
unitService=new UnitService();
}
return unitService;
}
//分页查询单位
public Page queryQyDw(Map<String,Object> params,int currentPage,int pageSize) throws Exception{
List<QyDw> units = null;
int count = 0;
SqlSession session=MybatisUtil.getSqlSessionFactory().openSession();
try{
IunitDao manager=session.getMapper(IunitDao.class);
units=(List<QyDw>)session.selectList("com.xinfeijinxin.qy.dao.IunitDao.queryQyDw", params,new RowBounds((start-1)*Conv.pageSize, limit));
count = manager.queryQyDwCount();
}catch(Exception e){
}finally{
session.close();
}
Page page=new Page(start,count); //初始化分页数据
page.setResult(units); //封装对象
return page;
}
}
4、IunitDao.java 对应UnitDao.xml查询语句
public interface IunitDao
{
/**
* 查询单位列表
*/
public List<QyDw> queryQyDw(Map<String,Object> map);
}
5、UnitDao.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace应对应接口路径-->
<mapper namespace="com.xinfeijinxin.qy.dao.IunitDao">
<!--查询记录,map参数可以根据情况去掉-->
<select id="queryQyDw" parameterType="map" resultType="com.xinfeijinxin.qy.bean.QyDw">
select dwid,dwmc,dwjc,sjdw,dwlx from qy_dw where 1=1
<if test="keyword!=null and keyword !=''">
and dwmc like CONCAT('%','${keyword}','%' )
</if>
<if test="keyword!=null and keyword !=''">
and dwjc like CONCAT('%','${keyword}','%' )
</if>
<if test="keyword!=null and keyword !=''">
and sjdw like CONCAT('%','${keyword}','%' )
</if>
<if test="keyword!=null and keyword !=''">
and dwlx like CONCAT('%','${keyword}','%' )
</if>
</select>
<!-- 查询记录总数-->
<select id="queryQyDwCount" resultType="int">
select count(*) from qy_dw
</select>
</mapper>
6、Action封装前台数据
public class UnitAction extends BaseAction
{
//getter setter()。。。。
private List<QyDw> units=null;
private Page page=null;
private QyDw unit;
//分页查询单位
public String list()
{
// 分页信息设置,接受前台参数
if (page == null)
page = new Page();
// 如果当前页为0,则设置当前页为1
if (page.getCurPage() == 0) {
page.setCurPage(1);
}
try{
Map<String,Object> map=new HashMap<String,Object>();
//map.put("keyword","学");
//将page传至前台
page=UnitService.getInstance().queryQyDw(map, page.getCurPage(), Conv.pageSize);
}catch(DBException e){
logger.error(e.getMessage());
}
return LIST;
}
}
7、BaseAction,设置统一返回的字符串,获取request和response
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class BaseAction extends ActionSupport{
protected HttpServletRequest request; // request
protected HttpServletResponse response; // response
protected ServletContext servletConext; // servletContext
protected HttpSession session; // session
public final String SUCCESS = "success"; //成功
protected String ADD = "add"; // 返回增加
protected String DELETE = "delete"; // 返回删除
protected String UPDATE = "update"; // 返回修改
protected String LIST = "list"; // 返回修改
protected String EXCEPTION="exception"; //返回异常
Logger logger = Logger.getLogger(BaseAction.class);
public HttpServletRequest getRequest() {
return ServletActionContext.getRequest();
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
public HttpServletResponse getResponse() {
return ServletActionContext.getResponse();
}
public void setResponse(HttpServletResponse response) {
this.response = response;
}
public ServletContext getServletConext() {
return ServletActionContext.getServletContext();
}
public void setServletConext(ServletContext servletConext) {
this.servletConext = servletConext;
}
public HttpSession getSession() {
return ServletActionContext.getRequest().getSession();
}
}
8、前台链接
<div class="btn" style="text-align: center;">
<s:if test="page.curPage <= 1">
<img src="images/firstpage2.png" />
<img src="images/prepage2.png" />
</s:if>
<s:else>
<a href="admin/Unit_list.action?page.curPage=1"><img
src="images/firstpage.png" /> </a>
<a
href="admin/Unit_list.action?page.curPage=<s:property value="%{page.curPage-1}" />"><img
src="images/prepage.png" /> </a>
</s:else>
<s:if test="page.curPage < page.total">
<a
href="admin/Unit_list.action?page.curPage=<s:property value="%{page.curPage+1}" />"><img
src="images/nextpage.PNG" /> </a>
<a
href="admin/Unit_list.action?page.curPage=<s:property value="%{page.total}" />"><img
src="images/lastpage.png" /> </a>
</s:if>
<s:else>
<img src="images/nextpage2.PNG" />
<img src="images/lastpage2.png" />
</s:else>
<select id="page" name="page.curPage"
style="width: 50px; vertical-align: middle;" onchange="jump()">
<s:bean name="org.apache.struts2.util.Counter" id="counter">
<s:param name="first" value="1" />
<s:param name="last" value="page.total" />
<s:iterator>
<option value="<s:property value="current-1" />">
<s:property value="current-1" />
</option>
</s:iterator>
</s:bean>
</select>
<script type="text/javascript">
var num = '${page.curPage}';
document.getElementById('page').options[num - 1].selected = true;
</script>
第
<s:property value="%{page.curPage}" />
页 共
<s:property value="%{page.total}" />
页 共
<s:property value="%{page.sum}" />
记录
</div>
分享到:
相关推荐
java分页工具类,以及基于Struts,Spring,mybatis,jsp中分页的调用及实现
mybatis 分页 mybatis-...大家知道mybatis自动生成代码是没有分页功能的 我在网上找了很久 有很多内容 但正真可以使用的少之又少 本人整合了网上的资源 整理了基于Oracle数据库的mybatis插件 经测试可以完美运行。。
在做基于SSM框架时,因用的是全注解模式开发,在做些查询+分页工作时Mybatis注解并不能很好的进行sql编写,因而用到了这个java类,对实现了sql语句的拼接。
SpringBoot 基于接口方式整合 Mybatis,分页方式采用插件 PageHelper 附有表结构创建语句 分页查询 http://localhost:8080/street/page?pageNo=1&pageSize=10 明细查询 http://localhost:8080/street?streetId=1
Mybatis-Plus 是一个基于 Mybatis 的增强工具,在 Mybatis 的基础上进行了简化而不失强大的功能。它提供了很多常用的功能,例如通用 Mapper、分页插件、代码生成器等。同时,它也遵循原生 Mybatis 的 SQL 标准,方便...
一、系统介绍 1、系统主要功能: 音乐播放 ...本系统基于Springboot和Vue实现的前后端分离的一个在线音乐网站系统,系统功能完整,页面简洁大方,是一个非常优秀的JAVA系统,比较适合做毕业设计使用。
mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis ...
代码生成:根据表名生成bean、controller、dao、Mapper.xml、列表页、搜索、分页、新增页、修改页 job集群:创建job、取消job、查询job、下拉搜索spring bean 数据源监控:druid 接口swagger文档 日志查询 邮件...
内置分页插件:基于Mybatis物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List查询 内置性能分析插件:可输出Sql语句以及其执行时间,建议开发测试时启用该功能,能有效解决慢查询 内置...
基于Spring4框架的三层架构开发完成。 3. Mybatis版本为:3.2.8。 4. 使用了SpringMVC框架,Spring4的xml配置和注解配置。 5. 前台展示页面使用了JQuery EasyUI的布局、列表和消息组件。 6. 系统实现了较为完善...
基于spring+spring MVC+MyBatis的BOOT客户管理系统,后台使用SSM框架进行编写,前台页面使用Bootstrap和jquery框架完成的页面展示功能 系统主要实现两大功能模块:用户登录和客户管理 用户登录包含:用户登录,退出...
3、后台的分页使用Mybatis的插件pagehelper实现 5.添加定时任务:不再使用作业自动调度框架Quartz实现作业调度,使用spring框架自带的调度器进行作业调度,简化了配置。@Scheduled是单线程的,每次最多只有一个作业...
ORM框架:Mybatis 安全框架:Shiro 分页插件:PageHelper 连接池:SpringBoot自带的HiKariCP 日志:SpringBoot自带的LogBack 前端框架:Bootstrap 在线预览 http://23188i98c9.51mypc.cn:28070 登录账户 管理...
基于sping+ springMVC+mybatis,里面还有定时任务的配置!
mybatis-generator-gui是基于[mybatis generator]开发一款界面工具, 本工具可以使你非常容易及快速生成Mybatis的Java POJO文件及数据库Mapping文件。 按照界面步骤轻松生成代码,省去XML繁琐的学习与配置过程 * 保存...
mybatis-generator-gui-map是基于开发一款界面工具, 本工具可以使你非常容易及快速生成Mybatis的Java POJO文件及数据库Mapping文件。 核心特性 按照界面步骤轻松生成代码,省去XML繁琐的学习与配置过程 保存数据库...
仅包含增删改查和分页,用户登录功能。谨慎下载。分页采用list截取实现。
智能排班系统Spring+SpringMVC+MyBatis+PateHelper分页+JS+JQ
毕业设计,基于SpringBoot+MyBatis+MySql开发的含前后端的个人博客网站,内含Java完整源代码,数据库脚本 SpringBoot-Blog 框架:Springboot 数据库持久层:Mybatis 文章评论插件:Valine 分页插件:PageHelper ...
基于JDK1.8+spring boot+mybatis+mysql项目。同时配置了日志,fastjson替换jackson,使用了mybatis分页框架,使框架分页变的非常简单。