ayziba-&& 2024-04-24 14:40 采纳率: 30%
浏览 2
已结题

spring boot

springboot 加mybatis依赖
以下问题怎么解决:
2024-04-24 14:35:29.128 ERROR 27088 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): soft3.mngsys.service.UserInfoService.findUserInfoList_Service] with root cause

  • 写回答

6条回答 默认 最新

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

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

    看起来你遇到了一个Spring Boot项目中集成MyBatis时的问题,错误信息提示找不到某个Mapper接口的绑定(BindingException)。这个问题通常是由于MyBatis未能正确地找到对应的Mapper XML文件或者注解配置导致的。

    为了解决这个问题,按照以下步骤操作:

    1. 确保你已经添加了MyBatis和Spring Boot的集成依赖。在pom.xml文件中加入以下依赖:
    <dependencies>
        <!-- ... -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.3.2</version> <!-- 更新到最新版本 -->
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- ... -->
    </dependencies>
    
    1. 配置数据库连接:在application.propertiesapplication.yml中设置MySQL的连接信息。 例如,在application.properties中:
    spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC
    spring.datasource.username=root
    spring.datasource.password=rootpassword
    spring.jpa.hibernate.ddl-auto=none
    
    1. 创建Mapper接口:在你的服务类包(比如soft3.mngsys.service)中创建对应的Mapper接口,这里假设你有一个名为UserInfoService的服务类,那么你需要创建一个名为UserInfoMapper的接口,它通常位于与服务类同级的目录中(soft3/mngsys/mapper),并包含如下内容:
    package soft3.mngsys.mapper;
    
    import org.apache.ibatis.annotations.Select;
    import soft3.mngsys.entity.UserInfo;
    
    public interface UserInfoMapper {
        @Select("SELECT * FROM user_info WHERE id = #{id}")
        UserInfo findUserInfoById(int id);
    }
    
    1. 创建Mapper XML文件:在src/main/resources/mapper目录下创建一个与Mapper接口同名的XML文件(这里是UserInfoMapper.xml),并定义查询语句:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="soft3.mngsys.mapper.UserInfoMapper">
        <select id="findUserInfoById" resultType="soft3.mngsys.entity.UserInfo">
            SELECT * FROM user_info WHERE id = #{id}
        </select>
    </mapper>
    
    1. 在Spring Boot主启动类上添加注解,启用MyBatis扫描:
    @SpringBootApplication
    @MapperScan("soft3.mngsys.mapper") // 这里指定Mapper接口所在的包路径
    public class Application {
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
    
    1. 最后,在你的UserInfoService中注入Mapper接口,并编写业务逻辑方法:
    @Service
    public class UserInfoService {
        private final UserInfoMapper userInfoMapper;
    
        @Autowired
        public UserInfoService(UserInfoMapper userInfoMapper) {
            this.userInfoMapper = userInfoMapper;
        }
    
        public UserInfo findUserInfoById(int id) {
            return userInfoMapper.findUserInfoById(id);
        }
    }
    

    执行以上步骤后,你应该能成功运行你的应用并调用UserInfoService中的方法。如果你仍然遇到问题,请检查你的类路径、命名空间是否匹配以及是否有其他配置错误。如果问题依旧,请提供更详细的项目结构和相关代码,以便进一步排查。

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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月26日
  • 已采纳回答 4月26日
  • 创建了问题 4月24日

悬赏问题

  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?
  • ¥100 求Web版SPC控制图程序包调式
  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请