zoukankan      html  css  js  c++  java
  • mybatis bind标签

    开门见山的说,平时写模糊查询,一直用${name},例如:

    select * from table where name like '%${name}%'

    后来知道了,这样写可能会引发sql注入,于是乎,要用到这样一个标签 bind,经过改正上面的sql可以变成

    <bind name="bindeName" value="'%'+name+'%'"/>
    SELECT * FROM table where name like #{bindeName}

    大致就上面这个意思,不要在意一些细节。就相当于在bind标签中的value值中,把需要的字符拼接好,然后用name中的值去代替拼接好的参数。

    这个用法同样用于一些防止更换数据库的sql中。例如:

    concat标签,在mysql中,可以拼接多个字符,但是如果有一天,你的数据库突然变成了oracle,concat就会报错了,因为它只能接受两个参数。

    这个时候,bind同样适用,如下:

    开始的时候:

    <if test=” userName != null and userName ! = ””>
      and username like concat ( '1',#{userName},'2'</if>

    可以改成:

    <if test=” userName != null and userName !=””> 
      <bind name= " userNameLike ” value = ”'1'+ userName + '2'”/>
      and username like #{userNameLike} 
    </if>  
  • 相关阅读:
    HTML学习笔记
    JSP与Servlet的跳转及得到路径方法整理(转)
    Servlet 学习笔记6:Cookie
    工作=娱乐=爱[龙]
    幸福的方法[龙]
    10张海报,激励人生[龙]
    8个方法让你安然度过低效率的日子[龙]
    使用空余时间的20个有效途径
    人生三点钟
    2013计划
  • 原文地址:https://www.cnblogs.com/bpjj/p/11880424.html
Copyright © 2011-2022 走看看