相关推荐recommended
Springboot3 整合 Mybatis3
作者:mmseoamin日期:2024-02-03

Springboot3 整合 Mybatis

Springboot3 整合 Mybatis

  • Springboot3 整合 Mybatis
    • 一、导入依赖
    • 二、编写配置文件
    • 三、定义模型 entity 实体类
    • 四、在启动类上添加注解,表示mapper接口所在位置
    • 五、定义mapper接口
    • 六、定义mapper.xml映射文件
    • 七、service层
    • 八、测试

      一、导入依赖

      mybatis 的必要依赖

      注意:使用 springboot3 的话要使用 mybatis3 的版本以及 java17及以上的版本

      
              
                  org.mybatis.spring.boot
                  mybatis-spring-boot-starter
                  3.0.0
              
      
              
                  com.mysql
                  mysql-connector-j
                  runtime
              
      

      二、编写配置文件

      server:
        port: 8081
      spring:
        datasource:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/user?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false
          username: root
          password: 200718
      mybatis:
        #  mapper映射文件包扫描 (这里是对应 resources 的文件路径)
        mapper-locations: classpath:/mappers/*.xml
        #  实体类别名包扫描
        type-aliases-package: com.yun.pojo
      

      三、定义模型 entity 实体类

      @AllArgsConstructor
      @NoArgsConstructor
      @Data
      public class User {
          private int id;
          private String username;
          private String password;
      }
      

      四、在启动类上添加注解,表示mapper接口所在位置

      注意: 如果接口上面有 注解 @Mapper 的话,就可以不用在使用扫描包注解 @MapperScan 了(当然两个可以同时存在)

      @SpringBootApplication
      @MapperScan("com.example.mybaitis_01.mapper") // 扫描的mapper
      public class Mybaitis01Application {
          public static void main(String[] args) {
              SpringApplication.run(Mybaitis01Application.class, args);
          }
      }
      

      五、定义mapper接口

      注意: 最好要加上 @Mapper注解,防止忘记开启扫描

      @Mapper
      public interface TestMapper {
          List selectNameAll();
      }
      

      六、定义mapper.xml映射文件

      注意:头文件这里的网站链接是没有 www 的,且能识别到 文件时,里面的 SQL 是有颜色的,否则就是白色

      
      
      
          
      
      

      七、service层

      注意: 接口和实现类最好把 @Service 加上,否则会出现找不到 bean 的问题

      1、接口:

      @Service
      public interface TestService {
          List selectNameAll();
      }
      

      2、实现类:

      @Service
      public class TestServiceImpl implements TestService {
          @Autowired
          private TestMapper testMapper;
          @Override
          public List selectNameAll() {
              return testMapper.selectNameAll();
          }
      }
      

      八、测试

      这里测试是调用Service层的,也可以调用Mapper层来实现 查询

      @SpringBootTest
      class Demo1ApplicationTests {
          @Autowired
          private TestService testService;
          @Test
          void contextLoads() {
              System.out.println(testService.selectNameAll());
          }
      }