旅游网小案例:旅游线路的详情展示

分析

  • 效果分析
    在这里插入图片描述根据页码数据进行分析,找到对应数据的表,初步完成dao层的分析.
  • 流程分析
    在这里插入图片描述进行流程分析,对业务的流程进行粗略分析,掌握功能的整体执行流程.

进行代码编写

  • js
		//线路详细获取
        //获取rid
        var rid = getParameter("rid");
        //发送请求route/findOne
        $.post("route/findOne", {rid: rid}, function (route) {
            //填充数据到html
            $(".rname").html(route.rname);
            $("#routeIntroduce").html(route.routeIntroduce);
            $("#price").html("¥" + route.price);
            $("#sname").html(route.seller.sname);
            $("#consphone").html(route.seller.consphone);
            $("#address").html(route.seller.address);
            //设置收藏次数
            $("#favoriteCount").html("已收藏" + route.count + "次");
            //图片展示进行拼接
            var ddstr = '<a class="up_img up_img_disable"></a>';
            var imgList = route.routeImgList;
            $("#dt").html('<img alt="" class="big_img"\n' +
                '                     src="' + imgList[0].bigPic + '">');
            for (var i = 0; i < imgList.length; i++) {
                var astr;
                if (i >= 4) {
                    astr = '<a title="" class="little_img"\n' +
                        '                   data-bigpic="' + imgList[i].bigPic + '" style="display:none;">\n' +
                        '                    <img src="' + imgList[i].smallPic + '">\n' +
                        '                </a>';
                } else {
                    astr = '<a title="" class="little_img"\n' +
                        '                   data-bigpic="' + imgList[i].bigPic + '">\n' +
                        '                    <img src="' + imgList[i].smallPic + '">\n' +
                        '                </a>';
                }
                ddstr += astr;
            }
            ddstr += '<a class="down_img down_img_disable" style="margin-bottom: 0;"></a>';
            //进行切换样式的加载
            goImg();
        });
        //进行收藏状态获取和刷新
        flush();

对html进行处理,将真实数据填充到页面.

  • Servlet
/**
     * 根据id查询一个旅游线路的详细信息
     *
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    public void findOne(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //接收id
        String rid = request.getParameter("rid");
        //调用service方法
        Route route = routeService.findOne(rid);
        //回写
        writeValue(route, response);
    }

进行数据的获取和回写,并调用service方法

  • Service
 public Route findOne(String rid) {
        if (rid != null && !"".equals(rid)) {
            //根据rid查询route
            Route route = routeDao.findOne(rid);
            //根据route的rid查询图片
            List<RouteImg> routeImgs = routeImgDao.findByRid(route.getRid());
            //注入routeImgList数据
            route.setRouteImgList(routeImgs);
            //根据route的sid查询商家信息
            Seller seller = sellerDao.findById(route.getSid());
            //注入seller数据
            route.setSeller(seller);
            return route;
        }
        return null;
    }

将数据进行获取,并填充到Route类中.
在这里插入图片描述
根据表结构分析,查询条件,得到相应是数据,根据rid查询tab_route表,得到单个线路route信息,根据route表中sid查询tab_selle得到对应商家信息,根据rid在tab_route_img查询,得到的图片路径.(事实证明满足第三范式和根据表关系建立主外键,能够更科学的设计表)

  • Dao
@Override
    public Route findOne(String rid) {
        String sql = "select * from tab_route where rid= ?";
        return template.queryForObject(sql, new BeanPropertyRowMapper<>(Route.class), rid);
    }
@Override
    public List<RouteImg> findByRid(int rid) {
        String sql = "select * from tab_route_img where rid=? ";
        return template.query(sql, new BeanPropertyRowMapper<>(RouteImg.class), rid);
    }
@Override
    public Seller findById(int sid) {
        String sql = "select * from tab_seller where sid=?";
        return template.queryForObject(sql, new BeanPropertyRowMapper<>(Seller.class), sid);
    }

由于存在于不同的类中,所以分开放,都是简单的查询方法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嘿嘿嘿1212

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

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

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

打赏作者

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

抵扣说明:

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

余额充值