笔记

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语句,写不同的判断。
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_sql语句
所有通过SqlProvider判断只更新有值的字段。没有值的就忽略它
新建provider这个包
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_sql语句_02

videoProvider
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_sql_03

实体类里面point改成用Double这个包装类。然后还需重新生成getter和setter方法
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_小D课堂_04
条件的判断写一遍
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_ide_05
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_ide_06

使用provider

小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_sql语句_07

启动应用。
postman测试 选择put类型去更新数据
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_小D课堂_08

注意路径前面要加admin
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_字段_09
返回1
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_sql_10
控制台的sql语句
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_sql_11
再更新title
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_字段_12
update语句输出了更新的两个字段。
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_ide_13
数据库表内
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_字段_14

可以搜索关键字 网上有很多的案例
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider_小D课堂_15