美文网首页
mybatis-xml文件常见使用

mybatis-xml文件常见使用

作者: 鱼da王 | 来源:发表于2019-01-24 17:36 被阅读0次
    1. CDATA标签的用法

      • 环境:

        在 XML 元素中,"<" 和 "&" 是非法的。"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。

      • 使用:

        在mapper文件中写sql语句时,遇到特殊字符时,如:< 等,建议使用 <![CDATA[ sql 语句 ]]> 标记,将sql语句包裹住,不被解析器解析

    2. 插入空值时,需要指定JdbcType -- 最好都加上,安全

    3. *#{}、${}的区别*

      • #{}

        在预处理时,会把参数部分用一个占位符 ? 代替。

        参数替换在 DBMS 中

      • ${}

        只是简单的字符串替。 会造成sql注入问题,例子如下:

        select * from ${tableName} where name = #{name}
        -- 当 tableName = "user; delete user; --"
        --动态解析如下
        select * from user; delete user; -- where name = ?;
        

        但是表名用参数传递进来的时候,只能使用 ${} ,具体原因可以自己做个猜测,去验证。这也提醒我们在这种用法中要小心sql注入的问题。

    4. foreach

            <if test="statuses != null and statuses.size() > 0">
              AND status IN
              <foreach collection="statuses" item="status" index="index"
                       open="(" close=")" separator=",">
                #{status,jdbcType=INTEGER}
              </foreach>
            </if>
      
    5. 插入操作返回id

      <insert id="insertAndGetId" parameterType="com.tiefan.btc.tripmarketingactiveserv.entity.bargain.BargainGroup" useGeneratedKeys="true" keyProperty="id">
              insert into bargain_group
              <trim prefix="(" suffix=")" suffixOverrides=",">
                  <if test="delFlag != null">
                      del_flag,
                  </if>
              </trim>
              <trim prefix="values (" suffix=")" suffixOverrides=",">
                  <if test="delFlag != null">
                      #{delFlag,jdbcType=BIT},
                  </if>
              </trim>
          </insert>
      
    6. like

      <select id="getUsersByName" parameterType="string" resultType="com.buaa.mybatis.po.User">
          SELECT * FROM USER WHERE username LIKE CONCAT('%',#{name},'%')
      </select>
      

    相关文章

      网友评论

          本文标题:mybatis-xml文件常见使用

          本文链接:https://www.haomeiwen.com/subject/aujujqtx.html