Mybatis相关操作

本文记录一些mybatis经常用到的操作。

目录

1、返回插入的id

2、选择结构 (choose,when,otherwise)

3、循环<foreach></foreach>

 

4、批量操作<trim></trim>

4、处理特殊字符格式包含<![CDATA[...]]>


1、返回插入的id

加上两个标签    keyProperty="id" useGeneratedKeys="true"

2、选择结构 (choose,when,otherwise)

<select id="dynamicChooseTest" parameterType="Blog" resultType="Blog">
    select * from t_blog where 1 = 1
        <choose>
            <when test="title != null">
                and title = #{title}
            </when>
            <when test="content != null">
                and content = #{content}
            </when>
            <otherwise>
                and owner = "owner1"
            </otherwise>
        </choose>
</select>

3、循环

<insert id="insertList">
    INSERT INTO xgx_course_mapping (course_id, coure_mapping_id,sort) VALUES
    <foreach collection="courseMappingIdList" index="index" item="item" separator=",">
      (#{courseId},#{item.courseId},#{item.sort})
    </foreach>
  </insert>

4、批量操作<trim></trim>

批量操作:判断每一个参数,并指定前缀后缀,去重前面和后面多余的字段

<trim prefix="" suffix="" suffixOverrides="" prefixOverrides="">

</trim>
#prefix:在trim标签内sql语句加上前缀。
#suffix:在trim标签内sql语句加上后缀。
#suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。
#prefixOverrides:指定去除多余的前缀内容
如:

        INSERT INTO 表名
        <trim prefix="(" suffix=")" suffixOverrides=",">
            type,
            <if test="title != null and title != ''">
                title,
            </if>
            <if test="targetId != null and targetId != ''">
                target_id,
            </if>
        </trim>
        <trim prefix=" VALUES (" suffix=")" suffixOverrides=",">
            #{type},
            <if test="title != null and title != ''">
                #{title},
            </if>
            <if test="targetId != null and targetId != ''">
                #{targetId},
            </if>
        </trim>

巨坑:MySQL连接数据库时,添加语句:“&allowMultiQueries=true”

作用:
1.可以在sql语句后携带分号,实现多语句执行。
2.可以执行批处理,同时发出多个SQL语句。

 

4、处理特殊字符
格式包含

<![CDATA[
    内容
]]>

如:字符串模糊查询

        <if test="nickname != null  and nickname !=''">
            AND (nickname LIKE CONCAT('%', #{nickname}, '%') OR cellphone = #{cellphone})
        </if>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值