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语句输出了更新的两个字段。
数据库表内
可以搜索关键字 网上有很多的案例