zoukankan      html  css  js  c++  java
  • 69.商品项目(多条件查询)

    1.查询条件的封装对象

    页面传送条件到后台的对象一般命名有vo

    package com.bjpowernode.pojo.vo;
    
    public class ProductInfoVo {
        //商品名称
        private String pname;
        //商品类型
        private Integer typeid;
        //最低价格
        private Integer lprice;
        //最高价格
        private Integer hprice;
        //设置页码
        private Integer page=1;
    
        @Override
        public String toString() {
            return "ProductInfoVo{" +
                    "pname='" + pname + '\'' +
                    ", typeid=" + typeid +
                    ", lprice=" + lprice +
                    ", hprice=" + hprice +
                    ", page=" + page +
                    '}';
        }
    
        public String getPname() {
            return pname;
        }
    
        public void setPname(String pname) {
            this.pname = pname;
        }
    
        public Integer getTypeid() {
            return typeid;
        }
    
        public void setTypeid(Integer typeid) {
            this.typeid = typeid;
        }
    
        public Integer getLprice() {
            return lprice;
        }
    
        public void setLprice(Integer lprice) {
            this.lprice = lprice;
        }
    
        public Integer getHprice() {
            return hprice;
        }
    
        public void setHprice(Integer hprice) {
            this.hprice = hprice;
        }
    
        public Integer getPage() {
            return page;
        }
    
        public void setPage(Integer page) {
            this.page = page;
        }
    
        public ProductInfoVo(String pname, Integer typeid, Integer lprice, Integer hprice, Integer page) {
            this.pname = pname;
            this.typeid = typeid;
            this.lprice = lprice;
            this.hprice = hprice;
            this.page = page;
        }
    
        public ProductInfoVo() {
        }
    }

    2.mapper开发

    <sql id="Base_Column_List" >
        p_id, p_name, p_content, p_price, p_image, p_number, type_id, p_date
      </sql>
     <select id="selectCondition" parameterType="com.bjpowernode.pojo.vo.ProductInfoVo" resultMap="BaseResultMap">
        select <include refid="Base_Column_List"></include>
        from product_info
        <!--拼接条件-->
        <where>
          <!--商品名称不为空,拼接商品名称模糊查询-->
          <if test="pname != null and pname !=''">
            and p_name like '%${pname}%'
          </if>
          <!--商品类型不为空,拼接商品类型查询条件-->
          <if test="typeid != null and typeid != -1">
            and type_id =#{typeid}
          </if>
          <!--如果最低价格不为空,最高价格为空,则查询大于最低价格的所有商品-->
          <if test="(lprice != null and lprice != '') and (hprice == null or hprice == '')">
            and p_price &gt;= #{lprice}
          </if>
          <!--如果最高价格不为空,最低价格为空,则查询小于最高价格的所有商品-->
          <if test="(hprice != null and hprice !='') and (lprice == null or lprice == '')">
            and p_price &lt;= #{hprice}
          </if>
          <!--如果最高和最低价格都不为空,则查询介于最高价格和最低价格之间的所有商品-->
          <if test="(lprice !=null and lprice !='') and (hprice != null and hprice != '')">
            and p_price between #{lprice} and #{hprice}
          </if>
        </where>
        order by p_id desc
      </select>

    3.业务逻辑层

    @Override
        public List<ProductInfo> selectCondition(ProductInfoVo vo) {
            return productInfoMapper.selectCondition(vo);
        }

    4.控制器开发

        //   多条件查询功能实现
        @ResponseBody
        @RequestMapping("/condition")
        public void condition(ProductInfoVo vo, HttpSession session){
            List<ProductInfo> list = productInfoService.selectCondition(vo);
            session.setAttribute("list",list);
        }

    5.页面开发

    function condition() {
            //取出查询条件
            var pname = $("#pname").val();
            var typeid = $("#typeid").val();
            var lprice = $("#lprice").val();
            var hprice = $("#hprice").val();
            $.ajax({
                type:"post",
                url:"${pageContext.request.contextPath}/prod/condition.action",
                data:{"pname":pname,"typeid":typeid,"lprice":lprice,"hprice":hprice},
                //"pname"是ProductInfoVo的成员变量,pname是上面那个从文本框获取到的
                success:function () {
                    //刷新显示数据的容器
                    $("#table").load("http://localhost:8080/admin/product.jsp #table");
                }
            });
        }

    测试时页面无法显示,因为多条件查询还没有和分页连接上

  • 相关阅读:
    js中this.index使用
    js中index()的四种经典用法(转https://blog.csdn.net/superit401/article/details/51726826)
    splice()的用法
    $().click()和$(document).on('click','要选择的元素',function(){})的不同(转https://www.cnblogs.com/sqh17/p/7746418.html)
    transform(转https://blog.csdn.net/qq_24189933/article/details/79293870)
    transition 带的参数什么意思
    最后一次作业----------课程总结
    实训作业---I/O流
    第五次实训
    。。。
  • 原文地址:https://www.cnblogs.com/zhaojiayu/p/15748852.html
Copyright © 2011-2022 走看看