欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springMVC+mybatis分页

程序员文章站 2022-03-07 19:12:31
...

环境:jdk8 + springMVC + Spring5 + mybatis3.5.1 + jsp + bootstrap3

实现效果:

springMVC+mybatis分页
            
    
    博客分类: MyBatisspringMVC,分页 mybatisspringMVC分页 

springMVC+mybatis分页
            
    
    博客分类: MyBatisspringMVC,分页 mybatisspringMVC分页 
 
springMVC+mybatis分页
            
    
    博客分类: MyBatisspringMVC,分页 mybatisspringMVC分页 
 
springMVC+mybatis分页
            
    
    博客分类: MyBatisspringMVC,分页 mybatisspringMVC分页 
 代码实现:

服务端:

封装分页工具类: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页面:


springMVC+mybatis分页
            
    
    博客分类: MyBatisspringMVC,分页 mybatisspringMVC分页 
 js代码:


springMVC+mybatis分页
            
    
    博客分类: MyBatisspringMVC,分页 mybatisspringMVC分页 
 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;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • springMVC+mybatis分页
            
    
    博客分类: MyBatisspringMVC,分页 mybatisspringMVC分页 
  • 大小: 28.3 KB
  • springMVC+mybatis分页
            
    
    博客分类: MyBatisspringMVC,分页 mybatisspringMVC分页 
  • 大小: 23.4 KB
  • springMVC+mybatis分页
            
    
    博客分类: MyBatisspringMVC,分页 mybatisspringMVC分页 
  • 大小: 28.7 KB
  • springMVC+mybatis分页
            
    
    博客分类: MyBatisspringMVC,分页 mybatisspringMVC分页 
  • 大小: 29.3 KB
  • springMVC+mybatis分页
            
    
    博客分类: MyBatisspringMVC,分页 mybatisspringMVC分页 
  • 大小: 358 KB
  • springMVC+mybatis分页
            
    
    博客分类: MyBatisspringMVC,分页 mybatisspringMVC分页 
  • 大小: 133 KB