MyBatis解决Update动态SQL逗号的问题
2017-05-17 16:24
417 查看
最做项目遇到以下情况,MyBatis中需要动态拼接Update,由于之前忙着赶项目,就直接照着下面的这样写,结果发现系统出现了异常,原来这样写如果id=null就会出错
于是我查阅了网上的Mybatis的API和官方文档,找到了如下解决办法
<trim>节点标签:
trim主要功能是可以在Trim包含的内容前加上某些前缀(prefix),也可以在Trim包含的内容之后加上某些后缀(suffix)
还可以把Trim包含内容的首部的某些内容忽略掉(prefixOverrides)
,也可以把Trim包含的内容的尾部的某些内容忽略掉(suffixOverrides)
这行代码的意思是:在前面加上set 去掉最后的逗号!!!
备注方法2:把更新条件<if>标签内的内容,放在<set></set>标签中
UPDATETABLE SET <iftest="id!=null"> id=#{id,jdbcType=INTEGER} </if> <iftest"name!=null"> ,name=#{name,jdbcType=VARCHAR} </if> whereid=#{id,jdbcType=INTEGER}
于是我查阅了网上的Mybatis的API和官方文档,找到了如下解决办法
UPDATETABLE <trimprefix="set"suffixOverrides=","> <iftest="id!=null"> id=#{id,jdbcType=INTEGER}, </if> <iftest"name!=null"> name=#{name,jdbcType=VARCHAR}, </if> </trim> whereid=#{id,jdbcType=INTEGER}
<trim>节点标签:
trim主要功能是可以在Trim包含的内容前加上某些前缀(prefix),也可以在Trim包含的内容之后加上某些后缀(suffix)
还可以把Trim包含内容的首部的某些内容忽略掉(prefixOverrides)
,也可以把Trim包含的内容的尾部的某些内容忽略掉(suffixOverrides)
<trimprefix="set"suffixOverrides=",">
这行代码的意思是:在前面加上set 去掉最后的逗号!!!
备注方法2:把更新条件<if>标签内的内容,放在<set></set>标签中
相关文章推荐
- 对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成”问题的解决
- mybatis动态SQL之update 去掉最后一个逗号trim方法
- mybatis动态sql解决关于There is no getter for property named 'certitype'错误问题
- 对于“不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成”问题的解决
- “对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成”问题的解决
- 对于“不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成”问题的解决
- 对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成问题的解决办法
- updatepanel中动态生成组件及绑定事件问题的解决
- SSM框架day02-MyBatis——034——符合查询问题演示、035——动态SQL
- 解决mybatis继承SqlSessionDaoSupport方式操作数据库不打印sql日志的问题。
- MyBatis动态sql问题
- Mybatis:关于动态生成sql语句的一些问题
- 解决mybatis执行SQL语句部分参数返回NULL问题
- Mybatis、ibatis动态SQL问题
- 解决ssm环境下配置log4j打印mybatis的sql语句无效的问题
- 关于mybatis插件tk.mybatis生成的动态sql语句字段不加``的问题
- jboss7.1.1下使用log4j输出mybatis3.2.2的SQL语句问题与解决方法
- 在使用 Spring Boot 和 MyBatis 动态切换数据源时遇到的问题以及解决方法
- mybatis动态sql根据java枚举判断不执行,执行otherwise,解决办法
- MyBatis 动态拼接Sql字符串的问题