Mybatis种种模糊查询,Mysql分页管理
分类:pc28.am神测网

第一次做分页处理(完全不知道分页处理到底要做成什么样?)

模糊查询:

理解:其实就是前台页面通过传递不同的参数{1.查询的条件。2.查询页数(pageNum),3每页展现的条数(pageSize)},之后我们(只做后台的数据处理(展示到前台数据正确就OK),不管前台拿这些数据干毛线)

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

[
  {
    "id": 64,
    "name": "fdsaf"
  }
]

 

格式这些我用的是postman  get测试(反正是这种格式的)

1. sql中字符串拼接

  

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

.不管做什么sql查询,先在xxxx可视化工具里面把前台可能需要到的所有数据查询出来(如果你用命令窗口爽的不行,没办法只能说一句“老司机带带我”),(其实就是写个大思路,之后再进行一系列的修改sql语句,个人感觉比较方便)

 

  注:

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

1
    <if test="name != null and name != '' ">
        AND name LIKE '%${name}%'
    </if>
  (转)

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

    1. sql中字符串拼接

 

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

3. 程序中拼接

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

   Java

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

   // or String searchText = "%" text "%";

 (麻蛋的sql语句原来是这样写的。害我调试了好久好久 因为原来公司直接模糊查询是 '%' {name} '%'  但是不行了。 我直接用的第二种)

2在mapper.java文件中 查询的接口需要查询的字段必须 @Parem("xxx") 不然 你懂得
  

  List<Category> findAll(@Param("name") String name)throws Exception; 

PageHelper使用:

  PageHelper.startPage(currenPage,pageSize); ----->  这些就是前台传过来的  PageHelper可以直接用的

  List<Category> list = categoryMapper.findAll(name);

  list就是返回所需要的结果

   String searchText = new StringBuilder("%").append(text).append("%").toString();

   parameterMap.put("text", searchText);

 

   SqlMap.xml

   SELECT * FROM tableName WHERE name LIKE #{text};

 

4. 大小写匹配查询

[sql] view plain copy

print?

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

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

 

异常:

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" >

本文由pc28.am发布于pc28.am神测网,转载请注明出处:Mybatis种种模糊查询,Mysql分页管理

上一篇:新建站点,exe的命令使用实例分享 下一篇:没有了
猜你喜欢
热门排行
精彩图文