记录使用mybatis的<set><if></if></set>标签的一个坑

Posted 快乐的小码农2号选手

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录使用mybatis的<set><if></if></set>标签的一个坑相关的知识,希望对你有一定的参考价值。

1、错误原因

使用if标签时没有给我们的字符串加上引号,导致一直报错,报错参数绑定异常

2、错误的代码

<set>
            <if test="attr==tname">
                tname=#{val},
            </if>
            <if test="attr==ename">
                ename=#{val},
            </if>
            <if test="attr==subject">
                subject=#{val},
            </if>
            <if test="attr==category">
                category=#{val},
            </if>
            <if test="attr==dbh">
                dbh=#{val},
            </if>
            <if test="attr==place">
                place=#{val},
            </if>
        </set>

3、正确的代码

注意一定加上我们的引号,否则一直报错绑定异常

<set>
            <if test="attr=='tname'">
                tname=#{val},
            </if>
            <if test="attr=='ename'">
                ename=#{val},
            </if>
            <if test="attr=='subject'">
                subject=#{val},
            </if>
            <if test="attr=='category'">
                category=#{val},
            </if>
            <if test="attr=='dbh'">
                dbh=#{val},
            </if>
            <if test="attr=='place'">
                place=#{val},
            </if>
        </set>

以上是关于记录使用mybatis的<set><if></if></set>标签的一个坑的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis中if,where,set标签

Mybatis动态SQL(where元素set元素if元素)

mybatis 使用记录

[mybatis]动态sql_set_与if结合的动态更新

MyBatis 动态Sql

MyBatis动态SQL