azusa~ 2024-04-14 21:42 采纳率: 50%
浏览 14
已结题

mybatis plus遇到invalid bound statement(not found)报错

目前没有Mapper.xml文档,这个必须要配置吗?
搜了很多都是说配置xml文档,或者改application.properties里面扫描Mapper.xml的位置,还有pom.xml加上〈resources〉
全都试过了,都没用怎么办

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-14 21:42
    关注

    引自免费微信小程序:皆我百晓生

    面对invalid bound statement (not found)这样的错误,这通常意味着MyBatis Plus无法找到与你的Java接口对应的Mapper映射文件。然而,如果你的项目中确实没有Mapper.xml文件,并且你想要使用注解方式配置,那么你需要确保以下几个方面:

    1. Mapper接口: 你需要创建一个带有@Mapper注解的接口,例如:

      ```python
      import org.apache.ibatis.annotations.Select;
      
      @Mapper
      public interface UserMapper {
          @Select("SELECT * FROM user WHERE id = #{id}")
          User getUserById(Integer id);
      }
      
    2. 启用注解扫描: 在Spring Boot应用中,确保你在主启动类上启用了自动配置的Mapper扫描,这样Spring Boot会自动发现并注册这些接口。你不需要在application.properties中指定任何关于XML的路径。

      ```python
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      import com.baomidou.mybatisplus.extensionscanGlobal;
      import com.baomidou.mybatisplus.annotation.EnableScanGlobal;
      
      @SpringBootApplication
      @EnableScanGlobal(basePackages = "com.yourpackage.mapper") // 替换为你的包名
      public class Application {
      
          public static void main(String[] args) {
              SpringApplication.run(Application.class, args);
          }
      }
      
    3. MyBatis Plus依赖: 确保你的pom.xml文件已经包含了MyBatis Plus的依赖项,以及它的starter,例如:

      ```python
      <dependencies>
          <!-- MyBatis Plus -->
          <dependency>
              <groupId>com.baomidou</groupId>
              <artifactId>mybatis-plus-boot-starter</artifactId>
              <version>3.5.6</version>
          </dependency>
      
          <!-- MySQL 驱动或者其他数据库驱动 -->
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <scope>runtime</scope>
          </dependency>
      
          <!-- Spring Boot Starter Web -->
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-web</artifactId>
          </dependency>
      </dependencies>
      
    4. 数据源配置: 你需要在application.propertiesapplication.yml中配置你的数据源信息,包括数据库URL、用户名和密码等。例如:

      spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC
      spring.datasource.username=root
      spring.datasource.password=root
      spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
      
    5. 实体类: 对应于上述Mapper接口中的User对象,你需要有一个对应的User实体类,包含相应的字段和getter/setter方法。

      ```python
      public class User {
          private Integer id;
          private String name;
          // ... 其他字段及getter/setter方法
      }
      

    按照以上步骤进行设置后,你应该可以正常使用MyBatis Plus而不必创建Mapper.xml文件。如果你仍然遇到问题,请检查你的Spring Boot项目结构是否正确,以及是否存在其他潜在的配置错误。如果问题依然存在,提供更详细的错误日志将会有助于定位问题。

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 5月13日
  • 专家已采纳回答 5月5日
  • 创建了问题 4月14日

悬赏问题

  • ¥15 python中post报错
  • ¥20 关于#java#的问题:根据学生字段为集中分班还是分散分班,如何根据规则集合实现综合分班,分班规则由集合数据顺序由强到弱
  • ¥15 暴雪战网api相关问题
  • ¥15 而使用UE5引擎的 工具选项里 打开c++ visual studio 就会有部分显示加载失败 如图 加载失败的这张图 请问是什么原因
  • ¥15 mysql 对多个字段模糊查询,返回第一个匹配的字段
  • ¥15 the testing results of the whole dataset is empty
  • ¥15 can问题,往哥解决
  • ¥15 FFmpeg 成功推流到 Nginx RTMP 服务器但无法用 ffplay 或 VLC 播放
  • ¥15 请修改以下C语言代码使其能正确输出最短路径
  • ¥20 抖音商城拉码器安卓报错求解决办法或者有新的拉码脚本也可以介绍一下