跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

mybatis框架xml下trim中的prefix与suffix等标签的用法

trim中prefix与suffix等标签用法

1.

prefix 前缀增加的内容

2.

suffix 后缀增加的内容

3.

prefixOverrides 前缀需要覆盖的内容,一般是第一个判断条件前面的多余的结构,如:第一个判断条件前面多了 ‘and'select * from User where name='zhangsan' and age='20';第一个条件前面没有任何符号,第二个条件要加上and,否则sql语句会报错。很理想的状态是第一个和第二个都有值,但是既然判断,说明也可能会没有值,当第一个name没有值的时候,这个时候sql语句就会是 select * from User where and age='',很明显这个sql语句语法存在问题。

在这里标签属性prefixOverrides就起作用了,它会让前缀where覆盖掉第一个and。覆盖之后的是:select * from User where age='';

4.

suffixOverrides 后缀需要覆盖的内容,一般是最后一个数据的后面符号,如:set值的时候,最后一个值的后面多一个逗号‘,'insert into salaryid,basicSalary,bonus,lunchSalary,trafficSalary,name,#{id,jdbcType=INTEGER},#{basicSalary,jdbcType=INTEGER},#{bonus,jdbcType=INTEGER},#{lunchSalary,jdbcType=INTEGER},#{trafficSalary,jdbcType=INTEGER},#{name,jdbcType=VARCHAR},加了suffixOverrides=","

结果:

insert into salary (id,basicSalary,bonus,lunchSalary,trafficSalary,name) values (#{id},#{basicSalary},#{bonus},#{lunchSalary},#{trafficSalary},#{name})不加suffixOverrides=","

结果:

insert into salary (id,basicSalary,bonus,lunchSalary,trafficSalary,name,) values (#{id},#{basicSalary},#{bonus},#{lunchSalary},#{trafficSalary},#{name},)加了suffixOverrides=","的话,本例中最后一个条件中的逗号“,”会被后缀覆盖掉mybatis之 trim prefix="(" suffix=")"

1.如下所示

prefix:在trim标签内sql语句加上前缀。

suffix:在trim标签内sql语句加上后缀。

suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。

prefixOverrides:指定去除多余的前缀内容

2.下面是一个往购物车表中插入数据的mybatis语句

insert into cartid,user_id,deal_id,deal_sku_id,count,create_time,update_time,#{id,jdbcType=BIGINT},#{userId,jdbcType=BIGINT},#{dealId,jdbcType=BIGINT},#{dealSkuId,jdbcType=BIGINT},#{count,jdbcType=INTEGER},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP},suffixOverrides=","执行的sql语句也许是这样的:insert into cart (id,user_id,deal_id,) values(1,2,1,);显然是错误的指定之后语句就会变成insert into cart (id,user_id,deal_id) values(1,2,1);这样就将“,”去掉了。

前缀也是一个道理这里就不说了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:MyBatis动态SQL中的trim标签的使用方法Mybatis Trim标签用法简单介绍mybatis trim标签的使用详解MyBatis动态SQL标签用法实例详解Mybatis之动态sql标签的使用

相关文章