Spring Boot mybatis 配合 provider
2017-05-04 本文已影响1815人
Vissioon
provider 可以动态生成 sql
在处理复杂逻辑而又不能使用存储过程的时候有很大优势
Mapper 中配置
@UpdateProvider(type = MerchantProvider.class, method = "updateSalesman")
void updateSalesman(@Param("M") MerchantSalesDTO merchantSalesDTO);
Provider 中配置
import com.icekredit.merchant.entity.DTO.MerchantDTO;
import com.icekredit.merchant.entity.DTO.MerchantSalesDTO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
/**
* Created by johnzh on
* 2017/4/27. 10:01
*/
public class MerchantProvider {
public String updateSalesman(@Param("M") MerchantSalesDTO merchantSalesDTO){
SQL sql = new SQL(){{
UPDATE("merchant_sales");
if (merchantSalesDTO.getSalesName() != null){
SET("sales_name = #{M.salesName}");
}
if (merchantSalesDTO.getUpper() != null){
SET("upper = #{M.upper}");
}
WHERE("sales_id = #{M.salesId}");
}};
return sql.toString();
}
}