Mybatis各种模糊查询及#和$区别
模糊查詢:
工作中用到,寫三種用法吧
SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%');
SELECT * FROM tableName WHERE name LIKE '%${text}%';
程序中拼接
Java
// or String searchText = "%" + text + "%";
String searchText = new StringBuilder("%").append(text).append("%").toString();
parameterMap.put("text", searchText);
SqlMap.xml
SELECT * FROM tableName WHERE name LIKE #{text};
異常:
java.lang.IllegalArgumentException: modify is ambiguous in Mapped Statements collection (try using the full name including the namespace, or rename one of the entries) at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:466) at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:349) at org.apache.ibatis.binding.MapperMethod.setupCommandType(MapperMethod.java:137) at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:46) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:34) at $Proxy10.modify(Unknown Source)
拋出這個異常的原因可能是因為mapper.xml配置文件中<mapper>的namespace屬性配置錯誤造成的,沒有根據命名空間的值(全稱類名)找到相應映射接口。
如:<mapper namespace="com.xxx.xxx.mapper.TestMapper" >
轉載于:https://my.oschina.net/taomac/blog/118041
總結
以上是生活随笔為你收集整理的Mybatis各种模糊查询及#和$区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP 错误处理
- 下一篇: java中单例模式的3种实现