Mybatis 动态字段更新 if test 标签使用

If test标签介绍

if 标签可以通过判断传入的值来确定查询条件,test 指定一个OGNL表达式
常见写法
/当前字段符合条件才更新这个字段的值

/当前字段符合条件才更新这个字段的值
<if test='title != null and id == 87 '> title = #{title}, </if>
<if test="title!=null"> title = #{title}, </if>

注意点:

在这里插入图片描述

代码:

VideoMapper.java

public interface VideoMapper {
    /**
     * 选择性更行
     */
    int upDate(Video video);
}

VideoMapper.xml:

 <update id="upDate" parameterType="work.yspan.online_class.domain.Video">
        update video
        <trim prefix="set" suffixOverrides=",">
            <if test="title != null">title=#{title,jdbcType=VARCHAR},</if>
            <if test="summary != null">summary=#{summary,jdbcType=VARCHAR},</if>
            <if test="coverImg != null">cover_img=#{coverImg,jdbcType=VARCHAR},</if>
            <if test="price != 0">price=#{price,jdbcType=INTEGER},</if>
            <if test="createTime != null">create_time=#{create_Time,jdbcType=TIMESTAMP},</if>
            <if test="point != 0">point=#{point,jdbcType=DOUBLE},</if>
        </trim>
        where id=#{id,jdbcType=INTEGER}
    </update>

测试代码:

public class SqlSessionDemo {
    public static void main(String [] args) throws IOException {

        //读取配置文件
        String resouce="config/mybatis-config.xml";
        InputStream inputStream= Resources.getResourceAsStream(resouce);

        //构建Session工厂
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
        //获取Session
        try(SqlSession sqlSession=sqlSessionFactory.openSession()){

            VideoMapper videoMapper=sqlSession.getMapper(VideoMapper.class);

            Video video3=new Video();
            video3.setTitle("update后的结果");
            video3.setSummary("这是ssm课程2022");
            video3.setCoverImg("http://yspan.work:8232/666.png");
            video3.setId(50);
            videoMapper.upDate(video3);
        }
    }
}

测试截图:

更新前:
在这里插入图片描述
更新后:
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值