环境:jdk8 + springMVC + Spring5 + mybatis3.5.1 + jsp + bootstrap3
实现效果:
代码实现:
服务端:
封装分页工具类:Page.java
import java.util.List; /** * 分页工具类 * @author xiao沄莲 */ public class Page<T> { /** * 当前页 */ private int pageNo; /** * 每页显示量 */ private int pageSize; /** * 总页数 */ private int totalPage; /** * 当前页要显示的所有数据 */ private List<T> list; public Page() { //设置默认显示信息:默认显示第一页,每页默认显示10 条数据 pageNo = 1; pageSize = 3; } public int getPageNo() { return pageNo; } public void setPageNo(int pageNo) { if (pageNo <= 0){ pageNo = 1; } this.pageNo = pageNo; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { if (pageSize <= 0){ pageSize = 3; } this.pageSize = pageSize; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public List<T> getList() { return list; } public void setList(List<T> list) { this.list = list; } }
控制层代码:
@Controller @RequestMapping("user") public class UserController { @Autowired private UserService userService; @RequestMapping("list") public String list(Page<User> page,User user, Model model){ page = userService.findAll(page,user); model.addAttribute("user",user); model.addAttribute("page",page); return "userList"; } }
业务层接口代码:
/** * 用户业务相关接口 */ public interface UserService { /** * 查询所有用户 * @return 结果 */ Page<User> findAll(Page<User> page, User user); }
业务层实现类代码:
/** * 用户业务相关节的实现 * * @author 雅绮 */ @Service public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; /** * 查询所有用户 * * @return 结果 */ @Override public Page<User> findAll(Page<User> page,User user) { //先查询出总条数 int count = userDao.count(user); //计算出总页数 int totalPage = count / page.getPageSize(); if (count % page.getPageSize()!=0){ totalPage ++ ; } page.setTotalPage(totalPage); //查询出当前页显示的数据信息 int startIndex = (page.getPageNo()-1)*page.getPageSize(); List<User> userList = userDao.findAll(startIndex,page.getPageSize(),user); for (User obj : userList) { if (obj == null){ continue; } if (obj.getStatus() == Constant.USER_STATUS_NORMAL){ obj.setStatusStr("正常"); }else if(obj.getStatus() == Constant.USER_STATUS_STOP){ obj.setStatusStr("停用"); }else if(obj.getStatus() == Constant.USER_STATUS_DELETE){ obj.setStatusStr("删除"); }else{ obj.setStatusStr("未知"); } } page.setList(userList); return page; } }
持久层Mapper接口:
@Mapper public interface UserDao { List<User> findAll(@Param("startIndex") int startIndex, @Param("pageSize") int pageSize, @Param("user") User user); int count(@Param("user") User user); }
sql映射文件:
<!--条件查询:带分页,当前页的信息--> <select id="findAll" resultMap="userResultMap"> select u.*,r.id role_id,r.name <include refid="find_page_common"></include> limit #{startIndex},#{pageSize} </select> <!--条件查询:带分页,统计--> <select id="count" resultType="int"> select count(*) <include refid="find_page_common"></include> </select> <!--条件查询:带分页,SQL重复提取--> <sql id="find_page_common"> from user u left join role r ON r.id=u.role_id <where> <if test="user.realName!=null and user.realName!=''"> and u.real_name like '%${user.realName}%' </if> <if test="user.userName!=null and user.userName!=''"> and u.user_name like '%${user.userName}%' </if> <if test="user.password!=null and user.password!=''"> and u.password = #{user.password} </if> <if test="user.sex!=null and user.sex!=-1"> and u.sex = #{user.sex} </if> <if test="user.loginTimeBegin!=null and user.loginTimeBegin!=''"> <![CDATA[and u.login_time >= #{user.loginTimeBegin}]]> </if> <if test="user.loginTimeEnd!=null and user.loginTimeEnd!=''"> <![CDATA[and u.login_time <= #{user.loginTimeEnd}]]> </if> <if test="user.registerTimeBegin!=null and user.registerTimeBegin!=''"> <![CDATA[and u.register_time >= #{user.registerTimeBegin}]]> </if> <if test="user.registerTimeEnd!=null and user.registerTimeEnd!=''"> <![CDATA[and u.register_time <= #{user.registerTimeEnd}]]> </if> <if test="user.status!=null and user.status!=-1"> <![CDATA[and u.del_flag = #{user.status}]]> </if> <if test="user.mobile!=null and user.mobile!=''"> <![CDATA[and u.mobile = #{user.mobile}]]> </if> <if test="user!=null and user.role!=null and user.role.id!=null and user.role.id!=''"> <![CDATA[and u.role_id = #{user.role.id}]]> </if> </where> </sql>
前端:
jsp页面:
js代码:
css代码:
/*分页样式*/ .page{ text-align: center; margin-top: 10px; } .page>button{ height: 30px; font-size: 14px; line-height: 0px; font-weight: bold; font-family: kaiti; background-color: #DDDDDD; } .page>input{ background-color: #DDDDDD; width: 60px; height: 30px; border-radius: 6px; text-align: center; }
相关推荐
通过这个压缩包,开发者可以快速地搭建一个具备分页功能的SSM(Spring、SpringMVC、MyBatis)项目,并以此为基础进行自己的业务开发。这不仅节省了时间,也降低了出错的可能性,是学习和实践Java Web开发的好资料。
本例子使用 SpringMVC + Mybatis 框架整合, 基于 Spring 注解实现, 省去了 Spring 繁琐的 bean 手工配置,实现的功能包括: 1、 用户登录、注销 2、 登录界面生成验证码图片 3、 用户表数据的增、删、改、查、分页...
标题 "spring+springMVC+mybatis+easyui 增删查改以及分页源码" 描述了一个使用SSM(Spring、SpringMVC、MyBatis)框架与EasyUI前端库联合实现的Web应用项目,特别是关注于CRUD(创建、读取、更新、删除)操作和无...
项目名称:商品信息显示系统 使用技术:Springmvc+spring+mybatis+Layui 实现功能: 1、完成ssm+layui的搭建整合 2、完成商品的分页展示 特点:将后台mysql数据显示在layui页面上
通过学习和分析这个demo,开发者可以深入理解Spring、SpringMVC和MyBatis的整合方式,以及如何利用Mybatis-Paginator实现高效便捷的分页功能。这对于提升Java Web开发技能和理解企业级应用架构具有重要意义。
由SpringMVC+MyBatis为主要框架,mysql8.0配置主从复制实现读写分离,主机丛机分别为腾讯云的服务器,而项目部署在阿里云上。...后端:maven、SpringMVC、MyBatis、ajax、mysql读写分离、mybatis分页
在本项目中,"Spring+SpringMVC+Mybatis+Maven+bootstrap+ajax+jQuery整合开发简单的员工后台管理系统",我们看到一个基于Java技术栈的Web应用开发实例。这个系统利用了多个核心技术来构建一个功能完备的员工管理...
项目描述 说明: spring security 全注解式的权限管理 动态配置权限,角色和资源,权限控制到...Springboot+Mybatis+ SpringMvc+springsecrity+Redis+bootstrap+jquery 数据库文件 压缩包内 jar包文件 maven搭建
这是一个基于SpringMVC、MyBatis和Maven的Web应用实例,特别适合初学者学习使用。这个项目包含了完整的登录功能、数据的增删改查以及分页显示,同时还提供了数据库的SQL脚本,使得用户可以直接运行项目而无需从零...
51CTO下载-SpringMVC+Mybatis分页
在本项目中,我们主要探讨的是如何利用Spring MVC和MyBatis两大流行框架构建一个具有分页查询功能的Web应用。Spring MVC作为控制层,负责处理HTTP请求和响应,而MyBatis则作为数据访问层,用于处理数据库交互。下面...
在IT行业中,构建Web应用程序是常见的任务,而SpringMVC、Mybatis和MySQL的整合是这类应用中的常用技术栈。本项目"springmvc+mybatis+mysql整合实现列表展示、新增、更新、删除功能"旨在提供一个基础的Maven项目模板...
环境:基于SSM框架(Spring+SpringMVC+MyBatis) + Mysql数据库 + Tomcat7 数据库工具建议用SQLyog 登录、首页显示用户名和身份、分页、模糊查询、 页面跳转(首页、上一页、下一页、末页、指定页跳转(用户输入),第...
dubbo zookeep redis mongodb Servlet 3.0 Spring4 SpringMVC MyBatis ...MyBatis分页插件PageHelper MyBatis通用Mapper 源码完整+带sql脚本+亲测可以用,而且功能很强大,是一个完善的框架实例。
Springmvc+maven+ajax+jquery+json+mybatis做的登录,注册,增删改查详细注释,大家可以来一下,看看对自己有没有帮助哈,这是我自己一点点的打的,采用Eclipse和IntelliJ IDEA 13.1.3均可运行出来.并且付有sql脚本.可直接...
在本项目"SpringMVC+MyBatis+EasyUI简单分页Demo"中,我们将探讨如何结合这三种技术实现一个具备基本分页功能的Web应用。SpringMVC是Spring框架的一部分,负责处理HTTP请求和响应;MyBatis是一个轻量级的持久层框架...
在IT行业中,SpringMVC、MyBatis以及MyBatisPlus是常见的Java Web开发框架,它们各自在不同的层面上提供强大的功能。SpringMVC作为Spring框架的一部分,专注于处理Web应用程序的请求和响应;MyBatis则是一个轻量级的...
Spring4.2 + SpringMVC4.2 + Mybatis3.3 + Mybatis-Plus(Mybatis的插件,封装了CRUD和分页查询等功能) + log4j + shrio权限框架,可直接用于后台的开发。
本项目是基于SpringMVC、MyBatis和EasyUI这三大框架实现的后台分页功能,旨在提供一个高效、易用的解决方案。下面将详细介绍这三个技术以及它们如何协同工作来实现前端页面的分页。 首先,SpringMVC是Spring框架的...
自己最近搭建的一个SpringMVC+Mybatis的框架 属于无实体类的框架 并实现了Myabtis的自动分页和总数查询 只要传入分页参数便能自动查询总数和分页 总数封装在参数里面执行查询后可以直接从参数中获取