SpringBoot整合Mybatis

首先,我们需要先创建一个SpringBoot项目,可参考我之前编写的SpringBoot项目的创建

1.导入相关依赖包

在创建SpringBoot项目的时候其实就可以选择相关依赖包进行导入

<!--引入 mybatis-spring-boot-starter 的依赖-->
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>2.2.0</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.3</version>
</dependency>
<!-- lombok插件 -->
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.10</version>
</dependency>

2.创建Mybatis配置文件

本文不使用application.properties文件 而使用更加简洁的application.yml文件。将resource文件夹下原有的application.properties文件删除,创建application.yml配置文件(备注:其实SpringBoot底层会把application.yml文件解析为application.properties)

application.yml

在Spring Boot中多环境配置文件名需要满足application-{profile}.yml的格式,其中{profile}对应你的环境标识,比如:

application-dev.yml:开发环境
application-test.yml:测试环境
application-prod.yml:生产环境

至于哪个具体的配置文件会被加载,需要在application.yml文件中通过spring.profiles.active属性来设置,其值对应{profile}值,所以下方我们配置所加载的文件就是application-dev.yml文件

spring:
  profiles:
    active: dev

application-dev.yml

这里就顶替了我们之前Mybatis的使用中的mybatis-config.xml文件

server:
  port: 8080

spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://192.168.111.131:3306/mybatis?characterEncoding=UTF-8
    driver-class-name: com.mysql.jdbc.Driver

mybatis:
  #指定mapper.xml的位置
  mapper-locations: classpath:mappers/*.xml
  #扫描实体类的位置,在此处指明扫描实体类的包
  type-aliases-package: com.chen.springboot

3.创建实体类

该地方我们使用的是Lombok配置实体类,可以通过Lombok的配置使用对其进行了解

@Data
public class User {
    private Integer id;
    private String username;
    private String password;
    private Integer age;
    private String sex;
    private String email;
}

4.创建Mapper接口

@Repository
@Mapper
public interface UserMapper {
    List<User> getUser();
}

5.创建 Mapper 映射文件

命名规则:表所对应的实体类的类名+Mapper.xml

MyBatis映射文件存放的位置是src/main/resources/mappers目录下

注:mapper接口的全类名和映射文件中的命名空间(namespace)保持一致。

1.id就是对应的namespace中的方法

2.resultType为sql执行的返回值

3.parameterType为参数类型

<?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.chen.springboot.mapper.UserMapper">

    <select id="getUser" resultType="com.chen.springboot.pojo.User">
        select * from t_user
    </select>
    
</mapper>

6.创建service接口及其实现类

UserService 

public interface UserService {
    public List<User> getUser();
}

UserServiceImpl 

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    UserMapper userMapper;

    @Override
    public List<User> getUser() {
        List<User> userList = userMapper.getUser();
        return userList;
    }
}

7.创建控制层

@RestController
@RequestMapping("/testBoot")
public class LoginController {
    @Autowired
    UserService userService;

    @RequestMapping("/getUser")
    public String getUser(){
        return userService.getUser().toString();
    }
}

启动项目后,访问http://localhost:8080/testBoot/getUser查看到我们SQL执行结果即可

posted @ 2022-03-27 19:11  RFAA  阅读(86)  评论(0编辑  收藏  举报