Day19JavaWeb【旅游项目】 分类与分页的后台代码***

本文展示了如何使用Java后端处理分类和分页查询路线数据。通过RouteServiceTest测试类调用RouteService的方法,根据分类ID、当前页数和每页记录数从数据库中获取数据。RouteDao使用MyBatis的SQL映射查询总记录数和分页数据。最终,这些数据被转换为JSON并由Route2Servlet响应给前端。
摘要由CSDN通过智能技术生成

学习目标

  • (1)按分类显示路线数据
  • (2)按详情显示路线
  • (3)后台最核心的还是业务方法与sql
  • (4)前台最核心的是$(“#”) 拼接 html()函数修改内容

分类与分页的分析

在这里插入图片描述

分类与分页的后台代码

RouteServiceTest

   @Test
    public void test02() throws JsonProcessingException {
        //业务对象
        RouteService  routeService = new RouteService();
        //根据指定分类 cid 1 查找路线,但是路线记录需要使用分页来显示 currentPage1  pageSize20
        PageBean pb = routeService.findPageByCid(1,1,20);
        //生成json
        ResponseInfo responseInfo = new ResponseInfo();
        responseInfo.setCode(200);
        responseInfo.setData(pb);
        String json = new ObjectMapper().writeValueAsString(responseInfo);
        System.out.println(json);
    }

RouteService

 public PageBean findPageByCid(int cid, int currentPage, int pageSize) {
        //给pageBean的四个整数与一个集合 查找值
        PageBean pb = new PageBean();
        //设置当前页号
        pb.setCurrentPage(currentPage);//1*
        //设置每页记录数
        pb.setPageSize(pageSize);//2
        //设置总记录数
        RouteDao routeDao = MySessionUtils2.getMapper(RouteDao.class);

        int totalCount = routeDao.findCountByCid(cid);
        pb.setTotalCount(totalCount);//3*

        int totalPage = totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1;
        pb.setTotalPage(totalPage);//4*

        int start = (currentPage - 1) * pageSize;
        List<Route> list = routeDao.findPageByCid(cid, start, pageSize);
        pb.setList(list);//集合
        return pb;
    }

RouteDao

  //select count(*) from tab_route where cid = 1;
    int findCountByCid(int cid);

    //select * from tab_route where cid = 5 limit 40,20;
    List<Route> findPageByCid(int cid, int start, int pageSize);
    <select id="findCountByCid" parameterType="int" resultType="int">
        select count(*) from tab_route where cid = #{cid};
    </select>
    <select id="findPageByCid"  resultType="route">
       select * from tab_route where cid = #{arg0} limit #{arg1},#{arg2};
    </select>

Route2Servlet


//http://localhost:8080/lvyou_war_exploded/route2Servlet?cid=5&currentPage=1&pageSize=20
@WebServlet("/route2Servlet")
public class Route2Servlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //1 接收请求,获取参数
        String  cidStr = request.getParameter("cid");
        String  currentPageStr = request.getParameter("currentPage");
        String  pageSizeStr = request.getParameter("pageSize");

        int cid = 0; //"1"  1 "你好" 异常
        try {
            cid = Integer.parseInt(cidStr);
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        int currentPage = 1; //"1"  1 "你好" 异常
        try {
            currentPage = Integer.parseInt(currentPageStr);
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        int pageSize = 20 ;
        try {
            pageSize = Integer.parseInt(pageSizeStr);
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        //2 处理参数
        //业务对象
        RouteService  routeService = new RouteService();
        //根据指定分类 cid 1 查找路线,但是路线记录需要使用分页来显示 currentPage1  pageSize20
        PageBean pb = routeService.findPageByCid(cid,currentPage,pageSize);
        //生成json
        ResponseInfo responseInfo = new ResponseInfo();
        responseInfo.setCode(200);
        responseInfo.setData(pb);
        String json = new ObjectMapper().writeValueAsString(responseInfo);
        //3 响应浏览器

        response.getWriter().println(json);

    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翁老师的教学团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值