java+SSM框架实现分页查询

7 篇文章 0 订阅
5 篇文章 0 订阅

环境:

  • IDEA
  • MySQL 5.7.19
  • Tomcat 9
  • Maven 3.6

要求:

需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识;
在这里插入图片描述

pojo层:

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Combos {
//号码查询
    public int registernumberID;//号码ID
    public String registernumber;//号码
    public String paymentamount;//支付总价
}

dao层:

import com.liang.pojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public interface ComboMapper {
 List<Combos> queryAllCombo();
      //查询所有号码数据
    List<Combos>selectUserList();
    /**
     * 分页操作,调用findByPage limit分页方法
     * @param map
     * @return
     */
    List<Combos> findByPage(HashMap<String,Object> map);
}

dao Mapper层:

  <select id="queryAllCombo" resultType="Combos">
        select * from chinamobile.p_sim
    </select>
     <!--查询所有用户数据 -->
    <select id="selectUserList" resultType="com.liang.pojo.Combos">
        select
        <include refid="Base_Column_List" />
        from p_registernumber
    </select>
      <!-- 根据分页数据start 和size查询数据 -->
    <select id="findByPage" parameterType="Map" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from p_registernumber
        <if test="start!=null and size!=null">
            limit #{start},#{size}
        </if>
    </select>

Service层:

List<Combos> queryAllCombo();
    //分页操作,调用findByPage limit分页方法
    PageBean<Combos> findByPage(int currentPage);
      //查询所有号码数据
    List<Combos>selectUserList();

ServiceImpl层

@Override
    public List<Combos> queryAllCombo() {
        return comboMapper.queryAllCombo();
    }
     @Override
    public List<Combos> selectUserList() {
        return comboMapper.selectUserList();
    }
     @Override
    public PageBean<Combos> findByPage(int currentPage) {
        HashMap<String,Object> map = new HashMap<String,Object>();
        PageBean<Combos> pageBean = new PageBean<Combos>();

        //封装当前页数
        pageBean.setCurrPage(currentPage);

        //每页显示的数据
        int pageSize=5;
        pageBean.setPageSize(pageSize);

        //封装总记录数
        int totalCount = comboMapper.selectCount();
        pageBean.setTotalCount(totalCount);

        //封装总页数
        double tc = totalCount;
        Double num =Math.ceil(tc/pageSize);//向上取整
        pageBean.setTotalPage(num.intValue());

        map.put("start",(currentPage-1)*pageSize);
        map.put("size", pageBean.getPageSize());
        //封装每页显示的数据
        List<Combos> lists = comboMapper.findByPage(map);
        pageBean.setLists(lists);

        return pageBean;

    }

Controller 层

 @RequestMapping("/account")
    public String account(@RequestParam(value="currentPage", defaultValue="1", required=false)int currentPage,Model model){
        List<Combos> list = comboService.queryAllCombo();
        model.addAttribute("list",list);
        model.addAttribute("pagemsg", comboService.findByPage(currentPage));//回显分页数据

        List<Combos> lists = comboService.selectUserList();
        model.addAttribute("userLists", lists);
        return "account";
    }

account.jsp

 <c:if test="${!empty requestScope.pagemsg}">
                        <table border="1" cellpadding="10" cellspacing="0" class="table table-bordered mt-3" id="cardnumber">
                            <thead class="thead-light">
                            <tr>
                                <%--<th>id</th>--%>
                                <th>号码</th>
                                <th>支付总价</th>
                                <th>操作</th>
                            </tr>
                            </thead>
                            <c:forEach items="${requestScope.pagemsg.lists}" var="u">
                                <tr onclick="asd(${u.registernumber},${u.registernumberID})">
                                    <%--<td>${u.registernumberID}</td>--%>
                                    <td>${u.registernumber}</td>
                                    <td>${u.paymentamount}</td>
                                    <td>
                                        <button id="btn" type="button" class="btn btn-link"style="font-size: 14px;" onclick="oncardnumber(${u.registernumber},${u.registernumberID})">选择号码</button>
                                        <a id="link" href="${pageContext.request.contextPath}/combo/deleteBook/${u.registernumberID}"></a>
                                    </td>
                                </tr>
                            </c:forEach>
                        </table>
                    </c:if>
                    <table  border="0" cellspacing="0" cellpadding="0"  width="900px">
                        <tr>
                            <td class="td2">
                                <span>第${requestScope.pagemsg.currPage }/ ${requestScope.pagemsg.totalPage}页</span>
                                <span>总记录数:${requestScope.pagemsg.totalCount }  每页显示:${requestScope.pagemsg.pageSize}</span>
                                <span>
                                   <c:if test="${requestScope.pagemsg.currPage != 1}">
                                       <a href="${pageContext.request.contextPath }/combo/account?currentPage=1">[首页]</a>
                                       <a href="${pageContext.request.contextPath }/combo/account?currentPage=${requestScope.pagemsg.currPage-1}">[上一页]</a>
                                   </c:if>
                                   <c:if test="${requestScope.pagemsg.currPage != requestScope.pagemsg.totalPage}">
                                       <a href="${pageContext.request.contextPath }/combo/account?currentPage=${requestScope.pagemsg.currPage+1}">[下一页]</a>
                                       <a href="${pageContext.request.contextPath }/combo/account?currentPage=${requestScope.pagemsg.totalPage}">[尾页]</a>
                                   </c:if>

                               </span>
                            </td>
                        </tr>
                    </table>
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值