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();
    }
}
上一篇下一篇

猜你喜欢

热点阅读