`
piperzero
  • 浏览: 3471881 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Mybatis各种模糊查询

 
阅读更多

模糊查询:

工作中用到,写三种用法吧,第四种为大小写匹配查询

<wbr></wbr>

1. sql中字符串拼接

<wbr><wbr> SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%');</wbr></wbr>

<wbr></wbr>

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

<wbr><wbr> SELECT * FROM tableName WHERE name LIKE '%${text}%';<wbr></wbr></wbr></wbr>

<wbr></wbr>

3. 程序中拼接

<wbr><wbr> Java</wbr></wbr>

<wbr><wbr><span style="color:#1a612c">// or String searchText = "%" + text + "%";</span></wbr></wbr>

<wbr><wbr> String searchText = new StringBuilder("%").append(text).append("%").toString();</wbr></wbr>

<wbr><wbr> parameterMap.put("text", searchText);</wbr></wbr>

<wbr><wbr><strong>SqlMap.xml</strong></wbr></wbr>

<wbr><wbr> SELECT * FROM tableName WHERE name LIKE #{text};</wbr></wbr>

4.大小写匹配查询

<wbr></wbr>

   SELECT *  FROM TABLENAME  WHERE UPPER(SUBSYSTEM) LIKE '%' || UPPER('jz') || '%'
    --或者是
   SELECT *   FROM TABLENAME  WHERE LOWER(SUBSYSTEM) LIKE '%' || LOWER('jz') || '%'


<wbr></wbr>

异常:

java.lang.IllegalArgumentException<wbr>: <span style="color:#2f3699"><strong>modify</strong> is ambiguous in Mapped Statements collection (try using the full name including the namespace, or rename one of the entries)<br></span><wbr>at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:466)<br><wbr>at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:349)<br><wbr>at org.apache.ibatis.binding.MapperMethod.setupCommandType(MapperMethod.java:137)<br><wbr>at org.apache.ibatis.binding.MapperMethod.&lt;init&gt;(MapperMethod.java:46)<br><wbr>at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:34)<br><wbr>at $Proxy10.modify(Unknown Source)</wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

抛出这个异常的原因可能是因为mapper.xml配置文件中<mapper>的namespace属性配置错误造成的,没有根据命名空间的值(全称类名)找到相应映射接口。

<wbr></wbr>

如:<mapper namespace="com.xxx.xxx.mapper.TestMapper" >

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics