SpringBoot利用MyBatis连接Mysql数据库时常见启动报错

目录

报错情况

报错情况一:​编辑

报错情况二:

解决步骤

一、解决命名问题

1.mapper层的id是否和Dao层的方法名字相同

2.检查namespace与Dao层的文件地址相同

二、解决注解问题

1.检查Controller层的注解是否正确和完整

2.Dao层或者Mapper层的注解

3.pojo层:实体类层Data注解(用来替代set和get方法)

4.Service层的注解

三、解决pom.xml依赖包版本问题

*四、重构项目


报错情况

报错情况一:
报错情况二:

 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): org.mu.springboot.dao.PersonMapper.getAllPerson] with root cause.

这个报错情况是在用MyBatis连接Mysql数据库时的报错,网上也给了多种解决方案,也问了AI,后面询问我的老师才把问题解决,现在我把网上说的和老师说的做一个整合,让大家参考:

AI是这样说的:

这里穿插一些各层对应的基本注解情况:

启动类:(注意启动类位置不要错,与同包下的子包同级)
@SpringBootApplication
@MapperScan(“*****”)

Controller层
@Controller(等价于以前的@Controller+@ResponseBody)
@Autowired(注入service层接口)

Service层:(实现类,接口加@Mapper或者直接在主类加一个:@MapperScan(“****”))
@Service(交给spring容器管理)

Mapper层
@Mapper或者直接在主类加一个@MapperScan(“****”))

可以按照以下解决步骤操作:

解决步骤

一、解决命名问题

        1.mapper层的id是否和Dao层的方法名字相同

        注意:不要把方法名后面的括号加进去

<select id="getAllPerson" resultType="org.mu.springboot.pojo.Person">
        select * from person
</select>
        2.检查namespace与Dao层的文件地址相同

        右键Dao层 > Copy Path/Reference... > Copy Reference

<mapper namespace="org.mu.springboot.dao.PersonMapper">
    <!-- public List<Person> getAllPerson();-->
    <!--id为方法的名字     resultType为方法的返回值(什么类型)-->
    <!--parameterType 方法的参数类型-->
</mapper>

        这里建议下载插件MyBatisX:  File > Settings > Plugings > MyBatisX

二、解决注解问题

        1.检查Controller层的注解是否正确和完整

        2.Dao层或者Mapper层的注解

        3.pojo层:实体类层Data注解(用来替代set和get方法)

        4.Service层的注解

三、解决pom.xml依赖包版本问题

        (前面没问题的多半就在版本问题了)

        因为SpringBoot已经升级到3.0*了,Mybatis 老版本就会有这个问题

        当然springboot的版本也需要高一点(尽量在3.0以上)

        完成配置后,点击同步,等下载好依赖包后就好了。

我自己的配置你们可以参考一下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.1.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>org.mu</groupId>
    <artifactId>SpringBoot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>SpringBoot</name>
    <description>SpringBoot</description>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.25</version><scope>runtime</scope>
        </dependency>


    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <releases>
                <enabled>false</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>

</project>

*四、重构项目

        完成上面的步骤后,保险起见重构一下项目

猜你喜欢

转载自blog.csdn.net/qq_73830179/article/details/140600250