springboot集成Mybatis出现mapper层接口扫描不到的错误

本文介绍了在SpringBoot中集成Mybatis时,遇到Mapper层接口扫描不到的问题及解决方法。需要在主程序中配置@MapperScan指定扫描的包名,Controller层使用@Autowired注解进行自动注入。此外,还需要在SpringBoot全局配置文件中设置mapper.xml和mybatis配置文件的路径。若要启用驼峰式命名,可在mybatis的全局配置文件中进行设置。

在这里插入图片描述

springboot中集成mybatis使用mapper.xml文件

  1. 主程序中要配置@MapperScan(“扫描的包名”)
@MapperScan("com.guigu.springboot.mapper")
@SpringBootApplication

public class Springboot06DataMybatisApplication {

    public static void main(String[] args) {
        SpringApplication.run(Springboot06DataMybatisApplication.class, args);
    }

}

  1. controller层用@Autowired注解进行自动注入
    @Autowired
    TeacherMapper mapper;
  1. springboot全局配置文件,配置了mapper.xml文件和mybatis配置文件的路径才会将这些属性和properties绑定

mybatis:
  config-location: classpath:mybatis-config.xml
  check-config-location: true
  mapper-locations: classpath:/mappers/*.xml

前面这几部分都必须要有.

如果想要设置驼峰式命名,在mybatis的全局配置文件中这样设置.
它其他的设置参数可以参考github上发布的文档
settings配置参数文档

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <settings>
      <setting name="mapUnderscoreToCamelCase" value="true"/>
  </settings>

</configuration>
在Spring Boot项目中集成MyBatis接口,通常需要完成以下几个步骤:引入依赖、配置数据源、创建JavaBean实体类、编写Mapper接口和XML映射文件、以及配置MyBatis相关设置。以下是详细说明: ### 配置方法 #### 1. 引入 MyBatis 启动器 首先,在项目的 `pom.xml` 文件中添加 `mybatis-spring-boot-starter` 依赖,用于简化 MyBatis集成过程。 ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency> ``` 该启动器已经包含了对 Spring Boot 和 MyBatis 的整合支持[^1]。 #### 2. 配置数据源 在 `application.yml` 或 `application.properties` 中配置数据库连接信息。例如使用 MySQL 数据库时,可进行如下配置: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver ``` 此外,也可以配置 Druid 等连接池以提升性能和监控能力[^4]。 #### 3. 创建 JavaBean 实体类 根据数据库表结构创建对应的 Java 实体类。例如,假设存在一张名为 `user` 的表,可以定义如下实体类: ```java public class User { private Long id; private String name; private Integer age; // Getter and Setter methods } ``` #### 4. 编写 Mapper 接口与 XML 映射文件 ##### Mapper 接口 创建一个接口用于定义 SQL 操作的方法签名,如: ```java import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserMapper { List<User> findAll(); } ``` 如果不想在每个接口上手动添加 `@Mapper` 注解,可以在主启动类上使用 `@MapperScan` 来扫描整个包下的 Mapper 接口[^3]。 ##### XML 映射文件 创建一个 XML 文件(如 `UserMapper.xml`),用于定义 SQL 查询语句: ```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="com.example.mapper.UserMapper"> <select id="findAll" resultType="com.example.entity.User"> SELECT * FROM user </select> </mapper> ``` 确保 `namespace` 属性值与接口的全限定名一致,并且 `<select>` 标签中的 `id` 与接口方法名匹配。 #### 5. 配置 MyBatis 映射路径 在 `application.yml` 中指定 MyBatis 的 XML 映射文件位置: ```yaml mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.example.entity ``` 上述配置指定了映射文件的位置和实体类的包路径。 #### 6. 自定义 MyBatis 配置 若需自定义 MyBatis 的行为,可以通过创建配置类来实现。例如,添加如下配置类以自定义 MyBatis 的全局配置: ```java import org.apache.ibatis.session.Configuration; import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Bean public ConfigurationCustomizer configurationCustomizer() { return new ConfigurationCustomizer() { @Override public void customize(Configuration configuration) { configuration.setMapUnderscoreToCamelCase(true); // 开启自动映射下划线到驼峰命名 } }; } ``` 此配置启用了 MyBatis 的自动映射功能,使数据库字段名与 Java 对象属性名之间能够自动转换。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值