动态SQL语句:Mybaties SqlProvider

Posted 讲文明懂礼貌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态SQL语句:Mybaties SqlProvider相关的知识,希望对你有一定的参考价值。

1、注解

@UpdateProvider(type = ClassName.class,method = "methodName")//更新
@InsertProvider//插入
@SelectProvider//选择
@DeleteProvider//删除

 

 

 

2、写法

package net.xdclass.xdvidio.provider;

/**
 * @Author Pandas
 * @Date 2020/3/31 21:03
 * @Version 1.0
 * @Descrition video构建动态sql语句
 */

import net.xdclass.xdvidio.domain.Video;
import org.apache.ibatis.jdbc.SQL;
public class VideoProvider {

    /**
     * 更新vidio的动态SQL
     * @param video
     * @return
     */
    public String updaeVideo(final Video video){
        return new SQL(){{
            UPDATE("video");

            //条件写法
            if(video.getTitle()!=null){
                SET("title=#{title}");
            }
            if(video.getSummary()!=null){
                SET("summary=#{summary}");
            }
            if(video.getCoverImg()!=null){
                SET("cover_img=#{coverImg}");
            }
            if(video.getViewNum()!=null){
                SET("view_num=#{viewNum}");
            }
            if(video.getPrice()!=null){
                SET("price=#{price}");
            }
            if(video.getOnline()!=null){
                SET("online=#{online}");
            }
            if(video.getPoint()!=null){
                SET("point=#{point}");
            } WHERE("id=#{id}");
        }}.toString();
    }
}

然后在VideoMapper里面添加:

   @UpdateProvider(type = VideoProvider.class,method = "updateVideo")
    Integer update(Video video);

 

以上是关于动态SQL语句:Mybaties SqlProvider的主要内容,如果未能解决你的问题,请参考以下文章

mybaties动态sql中foreach怎么判断是最后一个

Mybaties第三天

Mybaties的简单使用(全当做复习了)

Java面试题集

java 动态代理—— Mybaties 拦截器链基本原理实现

mybaties的核心配置文件属性之typehandlers