Mybatis的@UpdateProvider注解的使用(轉)


廢話不多說,直接上代碼

 @UpdateProvider(type = AppProvider.class, method = "updateApp")
    Integer updateApp(@Param("appModel") AppModel appModel);

type:生成sql語句的類,method:類中對應的方法。

public class AppProvider extends SQL {
 
    private static final String TABLE_NAME = "t_application";
 
    public String updateApp(@Param("appModel") AppModel appModel) {
        return new SQL(){{
            UPDATE(TABLE_NAME);
 
            if (!StringUtils.isEmpty(appModel.getName())) {
                SET("name = #{appModel.name,javaType=String,jdbcType=VARCHAR}");
            }
            if (!StringUtils.isEmpty(appModel.getPic())) {
                SET("pic= #{appModel.pic,javaType=String,jdbcType=VARCHAR}");
            }
            if (!ObjectUtils.isEmpty(appModel.getIntroduce())) {
                SET("type= #{appModel.type,javaType=Long,jdbcType=BIGINT}");
                SET("type_name= #{appModel.typeName,javaType=String,jdbcType=VARCHAR}");
            }
            if (!StringUtils.isEmpty(appModel.getIntroduce())) {
                SET("introduce= #{appModel.introduce,javaType=String,jdbcType=VARCHAR}");
            }
            WHERE("id = #{appModel.id,javaType=Long,jdbcType=BIGINT}" );
        }}.toString();
    }
}

UPDATE(TABLE_NAME):要更新的表名;

update table_name;

SET("name = #{appModel.name,javaType=String,jdbcType=VARCHAR}");

appModel.name:appModel類name字段的值;

javaType=String:java語言中的數據類型;

jdbcType=VARCHAR:數據庫對應的數據類型;

"set  name =  appModel_name"

WHERE("id = #{appModel.id,javaType=Long,jdbcType=BIGINT}" );

"where id = appModel_id";
————————————————
版權聲明:本文為CSDN博主「Solyutian」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Solyutian/article/details/82593272


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM