shop--8.店铺列表展示--Dao层

实现商铺管理

实现商店列表

实现分页查询店铺,通过条件组合,来筛选出条件范围内的店铺列表

分页查询中使用LIMIT

第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目

 1 /**
 2      * 分页查询店铺,可输入的条件有:店铺名(模糊),店铺状态,店铺类别,区域id,owner
 3      * @param shopCondition
 4      * @param rowIndex 从第几行开始取数据
 5      * @param pageSize 表示返回多少行数据
 6      * @param 标签的作用 取参数的时候需要唯一的标识
 7      * @return
 8      */
 9     List<Shop> queryShopList(@Param("shopCondition")Shop shopCondition,
10             @Param("rowIndex") int rowIndex,@Param("pageSize") int pageSize);
11     /**
12      * 返回queryShopList总数
13      * @param shopCondition
14      * @return
15      */
16     int queryShopCount(@Param("shopCondition")Shop shopCondition);

SQL

分页查询店铺信息:可输入的条件有:店铺名(模糊查询),店铺状态,店铺类别,区域Id,owner

使用动态SQL来查

    <select id="queryShopList" resultMap="shopMap">
        SELECT
        s.shop_id,
        s.shop_name,
        s.shop_desc,
        s.shop_addr,
        s.phone,
        s.shop_img,
        s.priority,
        s.create_time,
        s.last_edit_time,
        s.enable_status,
        s.advice,
        a.area_id,
        a.area_name,
        sc.shop_category_id,
        sc.shop_category_name
        FROM
        tb_shop s,
        tb_area a,
        tb_shop_category sc
        <where>
            <if
                test="shopCondition.shopCategory!=null and shopCondition.shopCategory.shopCategoryId!=null">
                and s.shop_category_id = #{shopCondition.shopCategory.shopCategoryId}
            </if>
            <if
                test="shopCondition.area!=null and shopCondition.shopCategory.areaId!=null">
                and shop_area_id = #{shopCondition.area.areaId}
            </if>
            <if test="shopCondition.shopName!=null">
              and s.shop_name like ‘%${shopCondition.shopName}%‘
            </if>
            <if test="shopCondition.enableStatus!=null">
              and s.enable_status = #{shopCondition.status}
            </if>
            <if test="shopCondition.owner!=null and shopCondition.owner.userId!=null">
              and s.owner_id = #{shopCondition.owner.userId}
            </if>
            AND
            s.area_id = a.area_id
            AND
            s.shop_category_id = sc.shop_category_id
        </where>
        ORDER BY
        s.priority DESC
        LIMIT #{rowIndex},#{pageSize};
    </select>
    <select id="queryShopCount" resultType="int">
      SELECT
      count(1)
      FROM
        tb_shop s,
        tb_area a,
        tb_shop_category sc
                <where>
            <if
                test="shopCondition.shopCategory!=null and shopCondition.shopCategory.shopCategoryId!=null">
                and s.shop_category_id = #{shopCondition.shopCategory.shopCategoryId}
            </if>
            <if
                test="shopCondition.area!=null and shopCondition.shopCategory.areaId!=null">
                and shop_area_id = #{shopCondition.area.areaId}
            </if>
            <if test="shopCondition.shopName!=null">
              and s.shop_name like ‘%${shopCondition.shopName}%‘
            </if>
            <if test="shopCondition.enableStatus!=null">
              and s.enable_status = #{shopCondition.status}
            </if>
            <if test="shopCondition.owner!=null and shopCondition.owner.userId!=null">
              and s.owner_id = #{shopCondition.owner.userId}
            </if>
            AND
            s.area_id = a.area_id
            AND
            s.shop_category_id = sc.shop_category_id
        </where>
    </select>

原文地址:https://www.cnblogs.com/windbag7/p/9386458.html

时间: 2024-11-09 16:30:21

shop--8.店铺列表展示--Dao层的相关文章

shop--8.店铺列表展示--Service层

在service层中, 有一个问题,就是: dao层中的分页查询传参,传入的是rowIndex(从第几行开始查询), pageSize(查询多少条记录) 而在service层中分页查询传的是pageIndex(第几页),pageSize 所以在第一个参数要有一个转换才可以 所以编写一个工具类,将pageIndex转为rowIndex PageCalculator 1 /** 2 * 将pageIndex(第几页)转换为查询结果中的第几行rowIndex 3 * 如果pageIndex是1 pag

校园商铺-6店铺编辑列表和列表功能-6店铺列表展示之Service层的实现

1. Service层 为什么返回shopExecution? 原因:需要将这个shopList还有它的count整合在一起返回.而shopExecution正好满足了我们的条件. package com.csj2018.o2o.service; import java.io.InputStream; import com.csj2018.o2o.entity.Shop; import com.csj2018.o2o.exceptions.ShopOperationException; impo

shop--10.店铺列表(前端)

利用SUI Mobile的模板来进行拼装 http://m.sui.taobao.org/components/#searchbar 搜索栏.栅栏和按钮组合 卡片 无限滚动 shoplist.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=ed

shop--11.前端展示系统--店铺列表(后端)

按照页面原型设计 点击全部商店后加载一级商铺列表,加载对应的数据 点击特定的一级商铺列表,加载对应商铺列表下的数据 区域显示全部区域 店铺列表页面需要支持分页功能,使用无极滚动的样式 店铺列表页面需要支持多条件排列组合查询店铺信息 <select id="queryShopList" resultMap="shopMap"> SELECT s.shop_id, s.shop_name, s.shop_desc, s.shop_addr, s.phone,

设置storage模块的数据库操作支持、添加仓储分类列表接口(dao层)

一.在storage模块的pom文件中加入jdbc,mybatis,mysql依赖 二.在yml文件中加入datasource数据库连接的四个属性 三.在启动类的包下新建controller,service,serviceImpl,dao,entity包并建好对应4个表的四组类 四.在dao层设置基础增删改查方法,添加@Repository和@Mapper注解 1.StorageTopTypeDao: 2.StorageDao: 3.StorageLogDao(发现表设计不合理,改变字段): 4

校园商铺-4店铺注册功能模块-6店铺注册之Controller层的改造

不合理的地方: 1. 并不需要将InputStream转换成File类型,直接将InputStream传进入交给CommonsMultipartfile去处理就可以了 如果做这样的转换,每次都需要生成一个空白的文件,然后还需要向文件中写入请求传送过来的文件流,这样不仅仅产生很多垃圾文件,同时有可能造成写入失败,抛出异常的风险,大大地加大了系统的不稳定性. 2. 问题:一开始设计ShopService接口addShop方法的时候,第二个参数不早早设定为InputStream? 原因:体现实际的开发

Java高并发秒杀API之业务分析与DAO层

课程介绍 高并发和秒杀都是当今的热门词汇,如何使用Java框架实现高并发秒杀API是该系列课程要研究的内容.秒杀系列课程分为四门,本门课程是第一门,主要对秒杀业务进行分析设计,以及DAO层的实现.课程中使用了流行的框架组合SpringMVC+Spring+MyBatis,还等什么,赶快来加入吧! 第1章 课程介绍 本章介绍秒杀系统的技术内容,以及系统演示.并介绍不同程度的学员可以学到什么内容. 第2章 梳理所有技术和搭建工程 本章首先介绍秒杀系统所用框架和技术点,然后介绍如何基于maven搭建项

[android] 手机卫士黑名单功能(列表展示)

先把要拦截的电话号码保存到数据库中,拦截模式用个字段区分,1 电话拦截,2 短信拦截,3全部拦截 新建Activity类CallSmsSafeActivity.java 新建布局文件activity_call_sms_safe.xml 列表展示所有的黑名单手机号码 在布局文件中添加<ListView>控件,定义一个id 获取ListView对象 调用ListView对象的setAdapter()方法,参数:ListAdapter对象 定义内部类CallSmsSafeAdapter继承系统的Ba

【DRP】-Dao层常用功能代码:增删改查

本系列博客内容为:做DRP系统中Dao层常用功能. 该项目采用MVC架构 C(Controller)控制器,主要职责;1.取得表单参数:2.调用业务逻辑:3.转向页面 M(Model)模型,主要职责:1.业务逻辑:2.保存数据的状态 V(View)视图,主要职责:显示 本文主要是针对于Dao层的常见使用方法:增删改查sql语句及常用操作. 1 package com.bjpowernode.drp.basedata.dao; 2 3 import java.sql.Connection; 4 i