• [后端]Mybatis 使用注解进行模糊查询报错


    环境

    配置
    IDEIntellij IDEA
    操作系统MacOS
    数据库MySQL

    无论是用 SpringBoot 整合 Mybatis 还是用 SSM 进行整合, 思路都是一样的. 第一步先看 SQL 有没有问题, 第二步去看配置文件是否完善

    1. 无报错但是模糊查询没有实现. 检查你的 sql 是否是
      SELECT * FROM T_USER WHERE USER_NAME LIKE CONCAT('%',#{userName},'%') LIMIT #{start}, #{limit};
      上面使用的是利用 concat 拼接, 然后你也可以拼好 string 然后传进来, 也就是传参之前, 这个 userName = "%+userName+"%", 如果用这种方式你的 SQL 就不用CONCAT 两个注意点
      #{这里的参数}必须与传入参数的名字一致. 我们常用的两种配置方式, 第一种 XML 进行配置, 如下图
      在这里插入图片描述
      这个 mapper.xml 中的 startlimit 必须与 mapper 接口的传入参数保持一致
      在这里插入图片描述
      另一种就是通过 Mybatis 注解实现
      在这里插入图片描述
      模糊部分先不用关注, 那部分后面会说怎么排查, 这部分先检查 sql 跟传参是否正确. 值得一提的是#{这里的参数} 编译之后是一个带引号的字符串, 所以不需要再加引号. sql 大体模板一定要与上面的保持一致

    2. Bean Can not found. 这个报错是 Spring 比较常见的报错, 就是 Spring 找不到你说的这个东西. 因为你肯定是写了, 但是就是找不到.找不到的原因无非就是路径不对, 没加注解. 我们先说注解, 整合 SSM 或 SpringBoot, 找不到 Mapper 也有两个原因, 一个是你的 Mapper 接口上没有加@Mapper , 你没加这个注解, Spring 当然不知道你是谁你在哪. 第二个原因 启动类没加包扫描, 看下面这个图
      在这里插入图片描述
      这个注解就是把这个路径下的所有 mapper 纳入到 Spring 的管理之中, 你不用管它怎么管理的, Spring 很傻的只要你路径对他就能找到, 找不到就是路径不对.
      如果你确定了 Mapper 的配置也没有问题, 那么第三就是你的resultMap没有写对, resultMap两种配置方式第一种 XML 第二种注解
      在这里插入图片描述
      xml 就按照图中的文字去一个个检查
      在这里插入图片描述
      还有人会用注解去实现这个事情, 这个时候需要三个东西, 第一个@Select 你的告诉 Mybatis 你要查 还是要删 还是要更新. 第二个@ResultMap 你得告诉 Mybatis 查到的东西应该怎么搞, 搞成什么样. 第三个@Param 如果多参数一定要在这里映射下, 否则Mybatis 会按顺序给你把参数塞到 SQL 里, 它不会管你叫什么, 哪怕你第一个参数是#{userName}, 他也会把 start 这个参数给你塞到#{userName}
      这三个东西配完 还找不到, 就说明路径还有问题, 比如说 xxx 的ResultMap找不到, 这时候你检查一下是不是你写的是@ResultMap("BaseResultMap") 你发现这个名字跟 XML 中的resultMap 的 id一样呀, 为什么找不到? 只要找不到你就想路径, 然后你看 XML 中的namespace, 它不是不知道上哪里去找BaseResultMap 你就@ResultMap("org.xx.rhino.mapper.UserMapper.BaseResultMap") 这不就能找到了么

    [转载请注明出处] 仅供学习使用 @author ArtistS

  • 相关阅读:
    Sqoop概述 第1关:Sqoop概述
    2022年你必须要会的微前端 -(实战篇)
    Linux ARM平台开发系列讲解(入门篇) 1.6.3 NVIDIA AGX Xavier刷机方法
    【DRAM存储器十】SDRAM介绍-刷新
    Unity、C#连接MySQL数据库
    多比特杯武汉工程大学第六届ACM新生赛 A,L
    软考-密码学概述
    华为云nginx部署
    深入探讨梯度下降:优化机器学习的关键步骤(三)
    Linux 命令行快键键
  • 原文地址:https://blog.csdn.net/weixin_43071838/article/details/125607129