Mybatis 注解形式多条件查询

创建商家实体类

package com.clsystem.Dto;

import com.clsystem.MybatisUtil.Invisible;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * Created by pudding on 2017-10-25.(YYR)(商家信息)
 */
@Data
@ApiModel("Shop(商家模型)")
public class Shop {

    @ApiModelProperty("id")
    Integer id;

    @ApiModelProperty("所属业务员Id")
    Integer user_id;//所属业务员Id

    @ApiModelProperty("店铺名称")
    String shop_name;//店铺名称

    @ApiModelProperty("店铺面积")
    String area;//店铺面积

    @ApiModelProperty("固定电话")
    String  telephone;//固定电话

    @ApiModelProperty("手机号")
    String phone;//手机号

    @ApiModelProperty("经营类别(可以有多个类别)")
    @Invisible
    List<ShopBusiness> shopBusinessList;//经营类别

    @ApiModelProperty("店铺地区")
    String shop_address;//店铺地区

    @ApiModelProperty("详细地址")
    String detailed_address;//详细地址

    @ApiModelProperty("级别")
    String  level;//级别

    @ApiModelProperty("状态")
    String status;//状态

    @ApiModelProperty("备注")
    String remarks;//备注

    @ApiModelProperty("公司名称")
    String corporate_name;//公司名称

    @ApiModelProperty("法人姓名")
    String LegalPerson_name;//法人姓名

    @ApiModelProperty("法人电话")
    String LegalPerson_phone;//法人电话

    @ApiModelProperty("经办人姓名")
    String operator_name;//经办人姓名

    @ApiModelProperty("经办人电话")
    String operator_phone;//经办人电话

    @ApiModelProperty("负责人姓名")
    String charge_name;//负责人姓名

    @ApiModelProperty("负责人电话")
    String charge_phone;//负责人电话

    @ApiModelProperty("集团/公司电话")
    String corporate_phone;//集团/公司电话

}

创建mapper接口 使用SelectProvider注解(实现通过用户ID,级别,状态多条件查询)

package com.clsystem.Mapper;

import com.clsystem.Dto.Shop;
import com.clsystem.Mapper.Provider.ShopProvider;
import com.clsystem.MybatisUtil.SimpleInsertLangDriver;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * Created by pudding on 2017-10-25.(YYR)
 */
@Mapper
@Component
public interface ShopMapper {

    /**
     * 通过userId和level,status查询商家信息不分页 (我负责的)
     * @param userId
     * @return
     */
    @SelectProvider(type = ShopProvider.class,method = "findShopByLevelAndStatus")//多条件关键注释
    @Results({@Result(property = "id", column = "id"),@Result(property =   "shopBusinessList", javaType = List.class, column = "id",many = @Many(select = "com.clsystem.Mapper.ShopBusinessMapper.findBusinessByShopId"))})
    List<Shop> findShopByLevelAndStatus(Integer userId,String level,String status);

}

实现多条件查询创建ShopProvider类

package com.clsystem.Mapper.Provider;

/**
 * Created by pudding on 2017-11-20.
 */
public class ShopProvider {

    /**
     * 通过重要程度和状态查询商家
     * @param userId
     * @param level
     * @param status
     * @return
     */
    public String findShopByLevelAndStatus(Integer userId,String level,String status){

        StringBuffer sql=new StringBuffer("select * from cl_shop  where user_id="+userId+" ");

        if (!level.equals("")){
            sql.append(" and level='"+level+"' ");
        }

        if (!status.equals("")){
            sql.append(" and status='"+status+"' ");
        }

        sql.append("order by id desc");

        return sql.toString();
    }
}

—————————————–最后使用Service,Controller 调用接口,让我们调用接口来试试吧!———————————

这里写图片描述

——————————————查询结果,到这里就实现了mybatis注解方式的多条件查询!—————————————

这里写图片描述

猜你喜欢

转载自blog.csdn.net/yycarry/article/details/78585426