Mybatis中的update动态SQL语句 <trim></trim> 用法

Mybatis Mapper中文件中

update时,需要set设置多个字段,有时逗号处理时,会报错误,所以会使用到<trim></trim>

使用trim就是为了删掉最后字段的“,”。

主要不用单独写SET了,因为set被包含在trim中了:

<update id="update" parameterType="com.entity.Entity">
        <trim prefix="set" suffixOverrides=",">
            <if test="isPublish!=null">
                is_publish = #{isPublish},
            </if>
        </trim>
        WHERE id = #{id}
</update>     
时间: 2024-12-28 20:47:05

Mybatis中的update动态SQL语句 <trim></trim> 用法的相关文章

MyBatis学习总结_11_MyBatis动态Sql语句

MyBatis中对数据库的操作,有时要带一些条件,因此动态SQL语句非常有必要,下面就主要来讲讲几个常用的动态SQL语句的语法 MyBatis中用于实现动态SQL的元素主要有: if choose(when,otherwise) trim where set foreach 1.if 对属性进行判断,如果不为空则执行判断条件 [html] view plaincopy <select id="selectByCriteria" parameterType="com.mu

MyBatis 源码分析——动态SQL语句

有几年开发经验的程序员应该都有暗骂过原生的SQL语句吧.因为他们不能一句就搞定一个业务,往往还要通过代码来拼接相关的SQL语句.相信大家会理解SQL里面的永真(1=1),永假(1=2)的意义吧.所以mybatis动态SQL功能在笔者看来是最引吸人的.为了更好的区别XML映射文件上的SQL语句.mybatis把SQL语句分为四类.那么这个笔者已经在前面的章节里面讲过了.但是我们在开发过程中常常用到的也就俩种:静态和动态. 关于静态和动态的定义,笔者是这样子理解的--静态SQL语句显示就是里面没有相

MySQL存储过程中实现执行动态SQL语句

sql语句中的任何部分都可以作为参数. DROP PROCEDURE if exists insertdata; delimiter //CREATE PROCEDURE insertdata(IN table_name varchar(255))begin declare var_sql varchar(800); set var_sql = concat_ws(' ', 'select count(*) from ', table_name,' where c_purchase_id is

MyBatis 和 ibatis的动态SQL语句配置符号,不兼容大于号、小于号等特殊符号问题 X

TEST 在XML映射SQL的文件中,很多情况下会使用到大于号.小于号等特殊符号,这时候如果不进行控制是无法编译通过的,这时候需要用到<![CDATA[  ]]>符号进行说明,将此类符号不进行解析,其实,这个问题不止在MyBatis上通用,而是它通用于任何XML的文件中使用,比如Hibernate.Wabacus.Spring等等等等配置文件中,只要是XML文件就行,此类问题在以后的工作中,经常使用. 案例代码 <select id="findAllKiaAnalysisByC

MyBatis动态Sql语句

林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka   MyBatis中对数据库的操作.有时要带一些条件.因此动态SQL语句很有必要.以下就主要来讲讲几个经常使用的动态SQL语句的语法 MyBatis中用于实现动态SQL的元素主要有: if choose(when.otherwise) trim where set foreach 1.if 对属性进行推断.假设不为空则运行推断条件 <select id="selectByCriter

MyBatis学习总结(六)——动态SQL

MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. MyBatis中用于实现动态SQL的元素主要有: if choose(when,otherwise) foreach where set trim 下面我们主要说 where set trim 这三个标签 1,where标签 <!-- 查询学生list,like姓名,=性别 --> <select id="getStudentListWhere" parameterTy

MyBatis中动态SQL语句完成多条件查询

http://blog.csdn.net/yanggaosheng/article/details/46685565 MyBatis中动态SQL语句完成多条件查询 <select id="queryEmp"  resultType="cn.test.entity.Emp"> select * from emp where 1=1 <if test="deptNo!=null"> and deptno=#{deptNO} &

mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句

mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. choose (when,otherwize) ,相当于java 语言中的 switch ,与 jstl 中的choose 很类似.3. trim (对包含的内容加上 prefix,或者 suffix 等,前缀,后缀)4. where (主要是用来简化sql语句中where条件判断的,能智能的处理 a

MyBatis学习(三)、动态SQL语句

三.动态SQL语句 有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息.使用Oracle的序列.mysql的函数生成Id.这时我们可以使用动态sql. 下文均采用mysql语法和函数(例如字符串链接函数CONCAT). 3.1 selectKey 标签 在insert语句中,在Oracle经常使用序列.在MySQL中使用函数来自动生成插入表的主键,而且需要方法能返回这个生成主键.使