1. 程式人生 > >Mybatis 註解形式多條件查詢

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註解方式的多條件查詢!—————————————

這裡寫圖片描述