小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider 笔记 开始 使用provider

小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider
笔记
开始
使用provider

4、动态Sql语句Mybaties SqlProvider
    简介:讲解什么是动态sql,及使用

        1、
            @UpdateProvider(type=VideoSqlProvider.class,method="updateVideo")  更新
            @InsertProvider   插入
            @DeleteProvider      删除
            @SelectProvider   查询

        2、写法

         public String updateVideo(final Video video){  
           return new SQL(){{  
               UPDATE("video");

               //条件写法.  
               if(video.getAuthorId()!= null){  
                  SET("author_id=#{authorId}");  
               }    
               if(video.getTotalEpisode()!= null){
                   SET("total_episode=#{totalEpisode}");
               }

               WHERE("id=#{id}");
           }}.toString();  
        } 
    3、参考资料
        https://www.cnblogs.com/zhangminghui/p/4903351.html
     
 

开始


更新的时候只更新某几个字段。并不想全部更新。这样就导致了update的时候要写不同的sql语句,写不同的判断。

所有通过SqlProvider判断只更新有值的字段。没有值的就忽略它
新建provider这个包


videoProvider


实体类里面point改成用Double这个包装类。然后还需重新生成getter和setter方法

条件的判断写一遍

使用provider



启动应用。
postman测试 选择put类型去更新数据


注意路径前面要加admin

返回1

控制台的sql语句

再更新title

update语句输出了更新的两个字段。

数据库表内


可以搜索关键字 网上有很多的案例