精华内容
下载资源
问答
  • ibatis和mybatis like

    2017-09-20 15:02:07
    ibatis中使用like模糊查询 Mybatis技术学习,更多知识请访问https://www.itkc8.com display_name like '%'||#{displayName}||'%'   display_name like concat('%',#{...无效的方法,: select * from table1...

    ibatis中使用like模糊查询

    Mybatis技术学习,更多知识请访问https://www.itkc8.com

    display_name like '%'||#{displayName}||'%'

     

    display_name like concat('%',#{displayName},'%')

    用$有sql攻击

    无效的方法,:

    select  *  from table1 where name like '%#name#%'

     两种有效的方法: 1) 使用$代替#。此种方法就是去掉了类型检查,使用字符串连接,不过可能会有sql注入风险。

    select  *  from table1 where name like '%$name$%'

     2) 使用连接符。不过不同的数据库中方式不同。

    mysql: 

    select  *  from table1 where name like concat('%', #name#, '%')

     oracle:

    select  *  from table1 where name like '%' || #name# || '%'

     sql server:

     select  *  from table1 where name like '%' + #name# + '%'

     

     

    MyBatis中Like语句使用方式

    > Oracle

    SELECT

    *

    FROM

    user

    WHERE

    name LIKE CONCAT('%',#{name},'%')

    SELECT

    *

    FROM

    user

    WHERE

    name LIKE '%'||#{name}||'%'

      

    > SQL Server

    SELECT

    *

    FROM

    user

    WHERE

    name LIKE '%'+#{name}+'%'

      

    > MySQL

    SELECT

    *

    FROM

    user

    WHERE

    name LIKE CONCAT('%',#{name},'%')

      

    > DB2

    SELECT

    *

    FROM

    user

    WHERE

    name LIKE CONCAT('%',#{name},'%')

    SELECT

    *

    FROM

    user

    WHERE

    name LIKE '%'||#{name}||'%'

      

    > 通用

    SELECT

    *

    FROM

    user

    WHERE 1 = 1

    <if test="name != null and name != ''">

    <bind name="pattern" value="'%' + _parameter.name + '%'" />

    AND name LIKE #{pattern}

    </if>

    Mybatis技术学习,更多知识请访问https://www.itkc8.com

     

    展开全文
  • Mybatis的xml中使用like时,报错:无效的列索引,解决方法如下: like '%'||#{参数}||'%' 或 like concat(concat('%',#{参数}),'%')

    在Mybatis的xml中使用like时,报错:无效的列索引,解决方法如下:

    like '%'||#{参数}||'%'

    like concat(concat('%',#{参数}),'%')

    展开全文
  • MySQL数据库上,mybatis 如果模糊查询,两个条件怎么写?请指点一下。 一个条件的模糊查询,... AND STORE_SALE.CUSTOMER LIKE '%'||#{customer}||'%' 测试结果为全部查询,即where 条件无效 哪位知道该怎么写? 3Q
  • # mybatis配置 mybatis.config-location=classpath:mybatis-config.xml // 配置文件位置 mybatis.typeAliasesPackage=com.educate.domain mybatis.mapper-locations=classpath:com/educate/mapper/**/*.xml ...
  • like CONCAT('%','${orderSearch.contractNumber}','%')//尝试无效(mysql有效) like "%"#{name}"%"; //不一定可用 对于不同的版本(sqlserver有效)     Oracle数据库 SELECT * FROM t.....

    like '%'||#{supplierID}||'%' //这个我管用了(oracle)

    like CONCAT('%','${orderSearch.contractNumber}','%')//尝试无效(mysql有效)

    like "%"#{name}"%"; //不一定可用 对于不同的版本(sqlserver有效)

     

     

    Oracle数据库

    SELECT * FROM tablename WHERE Columnname like ‘%’ || #keywords# || ‘%’

     

    mysql数据库

    SELECT * FROM tablename WHERE Columnname like CONCAT(‘%’, #keywords#, ‘%’)

     

    sqlserver数据库

    SELECT * FROM tablename WHERE Columnname like ‘%’ + #keywords# + ‘%’

     

    前几天又看有这个网址了:http://sauzny.iteye.com/blog/2020138,这位朋友总结的更好:

    他里面提到的$符号的使用更简洁:

    使用 ${...} 代替 #{...}

       SELECT * FROM tableName WHERE name LIKE '%${text}%';

    ---------------------------------------------------------------------------------

    在Mybatis配置文件写SQL语句的时候对于一些比如“<”,">","<>","&"," ' "," " "是不能够识别的,并且会抛异常。一般可以如下改写: 

     

    &lt;       <   

    &gt;       >    

    &lt;&gt;   <>  

    &amp;      &   

    &apos;      '  

    &quot;      "  

    展开全文
  • 错误写法1 SELECT D.CODE FROM T_CODE_PUB_CASCADE_DICTDATA D where D.IS_DEL=0 AND D.TYPE_ID='1031' and D.CODE like concat('%', #{type}, '%') 错误写法2 SELECT D.CODE FROM T_CODE_PUB_CASCADE_DICTDATA D ...
    错误写法1
    <select id="queryCode" parameterType="java.lang.String" resultType="java.lang.String">
        SELECT D.CODE
        FROM T_CODE_PUB_CASCADE_DICTDATA D
        where D.IS_DEL=0 AND D.TYPE_ID='1031'
        <if test="typeList!=null and typeList.size > 0">
            and
            <foreach collection="typeList" item="type" index="index" open="(" close=")" separator="OR">
                D.CODE like concat('%', #{type}, '%')
            </foreach>
        </if>
    </select>
    
    错误写法2
    <select id="queryCode" parameterType="java.lang.String" resultType="java.lang.String">
        SELECT D.CODE
        FROM T_CODE_PUB_CASCADE_DICTDATA D
        where D.IS_DEL=0 AND D.TYPE_ID='1031'
        <if test="typeList!=null and typeList.size > 0">
            and
            <foreach collection="typeList" item="type" index="index" open="(" close=")" separator="OR">
                <bind name="code" value="'%' + type + '%'"/>
                D.CODE like #{code}
            </foreach>
        </if>
    </select>
    
    正确写法
    <select id="queryCode" parameterType="java.lang.String" resultType="java.lang.String">
        SELECT D.CODE
        FROM T_CODE_PUB_CASCADE_DICTDATA D
        where D.IS_DEL=0 AND D.TYPE_ID='1031'
        <if test="typeList!=null and typeList.size > 0">
            and
            <foreach collection="typeList" item="type" index="index" open="(" close=")" separator="OR">
                D.CODE like concat(concat('%', #{type}), '%')
            </foreach>
        </if>
    </select>
    展开全文
  • java+Spring+mybatis+lucens+达梦数据库。...解决方法:like '%'||#{title}||'%' (推荐)或者 like “%"#{title}"%”(不推荐),""是对%的,mybatis会对参数自动加‘ ’ 现象: mybatis: SELECT CO
  • 在实现分页功能中出现这个异常很是苦恼,百度后说是语法问题或者是sql中出现了关键字。 自己对了很多遍代码感觉没问题,测试删了参数后不报错,发现问题还是语法,仅以记录。... where b.#{condition} like '%
  • 使用Mybatis-Plus中的模糊查询(like)时,当查询关键字中包括有_、\、%时,查询关键字无效,该怎么解决,解决方式有两个,一个自定义拦截器,拦截所有模糊查询语句,并将特殊符号转义;第二中方式就是定义一个函数,...
  • Oracle拼接字符串concat需要注意的小事项 在用ssm框架编写代码的时候,因为数据库换成了oracle,在模糊查询数据的时候突然...一直报错参数个数无效,在网上查找资料发现模糊查询的sql语句还是concat('%','s','%')这样写的
  • a.AREA_ID LIKE concat( '%', ?, '%' ) ,然后由于迁移到了oracle,发现一执行就报错 一直出现参数个数无效 ,然后在网上查了,才发现 oracle中使用concat,concat只能连接两个字符,而“||”可以连接多个字符...
  • select * from SYS_MENU where url like '%' || #{roleName} || '%'; 其他的都不行 我的完整mybatis的sql <select id="projectQuery" resultMap="ProjectMap"> select * from ...
  • 1.把sql改成like concat('%',#{groupName},'%')就可以了,谢谢你们 https://www.oschina.net/question/436422_2132456 2.我不是上面的错误,连着两天两次遇到竟然忘了为什么,后来检查sql语句,是结尾多了分号...
  • mybatis注意点

    2018-03-05 11:25:39
    因为数据库换成了Oracle,在模糊查询数据的时候突然发现报错了select * from SYS_MENU where url like concat('%',#{roleName},'%')一直报错参数个数无效,在网上查找资料发现模糊查询的sql语句还是concat('%','s','%'...
  • select * from birthday where name like concat(concat('%',#{name}),'%') 如果直接写concat('%', #{name}, '%'),会报错! ### The error occurred while setting parameters ### SQL: SELECT c...
  • ibatis/mybatis模糊匹配

    2017-11-21 17:45:29
    无效的方法: ...select * from table1 where name like '%#name#%'  两种有效的方法: 1) 使用$代替#。此种方法就是去掉了类型检查,使用字符串连接,不过可能会有sql注入风险。
  • 在使用MyBatis操作Oracle数据库的时候,写模糊查询突然发现原本在MySql中正确的代码,在Oracle中报错,参数个数无效 <if test="empId!=null and empId!=''"> and e.empId like CONCAT('%',#{empId},'%') &...
  • Oracle拼接字符串concat需要注意的小事项 ...select * from SYS_MENU where url like concat('%',#{roleName},'%') 一直报错参数个数无效,在网上查找资料发现模糊查询的sql语句还是concat('%','s','%')这样写的 ...
  • and ','||mps_major||',' like '%,8,%'or ','||mps_major||',' like '%,9,%') ``` 这一段sql ,我在plsql中可以成功的执行,但是为什么在mybatis中会执行报下面的错: ``` 2016-12-09 09:28:47,167 [http-8080-2...
  • 在使用LIKE关键字进行模糊查询时,“%”、“_”和“[]”单独出现时,会被认为是通配符。为了在字符数据类型的列中查询是否存在百分号 (%)、下划线(_)或者方括号([])字符,就需要有一种方法进行转义 解决方法...
  • java.sql.SQLSyntaxErrorException: ORA-00909: 参数个数无效

    万次阅读 多人点赞 2018-12-13 20:31:39
    MyBatis进行多参数模糊查询的时候遇到这个异常,看了下打印日志,发现异常出在预编译之后,插入实参的时候。 ==&gt; Preparing: select role_id, role_name, note from t_role where role_name like concat...
  • 使用MyBatis动态SQL进行模糊查询时报错,数据库使用的是oracle 导致原因:concat是连接两个字符串的函数 修改代码前 status LIKE CONCAT ('%',#{user.status},'%') 修改代码后 status LIKE CONCAT (concat('%',#{...
  • 【Java字符操作】避免模糊查询%等占位符时无效

    千次阅读 热门讨论 2018-03-17 22:55:01
    编程语言:java框架:SSM模糊查询实现方式:&lt;if test="goodsCode != null"...用concat拼接mybatis传下来的值拼接到sql中效果: 在搜索框输入%字符时,即使数据中有带%的数据,...

空空如也

空空如也

1 2
收藏数 30
精华内容 12
关键字:

likemybatis无效