SpringBoot | 集成mybatis和案例演示

image

1. 集成 mybatis

1、添加 mybatismysql 依赖坐标。

<!--        集成mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>
<!--        集成mysql连接-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.22</version>
        </dependency>

2、添加数据库连接信息。

src/main/resources/application.properties中添加如下内容。

# 增加数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/wiki?characterEncoding=UTF8&autoReconnect=true&serverTimezone=UTC
spring.datasource.username=wiki
spring.datasource.password=wiki
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

2. 使用 mybatis 流程

2.1. 创建实体类

1、在 src/main/java/com/nathan/wiki/domain 创建 Test.java

package com.nathan.wiki.domain;

public class Test {
    private Integer id;
    private String name;
    private String password;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

2、在数据库中创建一个和表属性相同的字段构成的表。

drop table if exists `test`;
create table `test`
(
    `id`   bigint not null comment 'id',
    `name` varchar(50) comment '名称',
    `password` varchar(50) comment '密码',
    primary key (`id`)

)engine = innodb default charset = utf8mb4 comment ='测试';

并添加一条数据:

# 添加一条数据
insert into `test` (id,name,password) values (1,'测试','password');

2.2. 创建 dao 接口

src/main/java/com/nathan/wiki/mapper 创建一个 mapper 接口(dao 接口)TestMapper

package com.nathan.wiki.mapper;


public interface TestMapper {

    public List<Test> list();

}

2.3. 创建 mapperr 映射文件

src/main/resources/mapper 下创建 TestMapper.xml,里面编写 sql 语句。

<?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.nathan.wiki.mapper.TestMapper">

    <select id="list" resultType="com.nathan.wiki.domain.Test">
        select `id`,`name`,`password` from `test`;
    </select>

</mapper>

3. 配置 mybatis

3.1. 添加@MapperScan 注解

springboot 启动类中,添加注解 @MapperScan,会扫描此注解设置的路径下的 mapper 文件。


//添加要扫码的包 ,此时为 com.nathan
@ComponentScan("com.nathan")
@SpringBootApplication
@MapperScan("com.nathan.wiki.mapper")
public class WikiApplication {

3.2. 配置所有 mappe.xml 路径

springboot 配置文件 application.properties 中,设置 mapper 文件统一路径。

# 配置mybatis,所有Mapper.xmL所在的路径
mybatis.mapper-locations=classpath:/mapper/**/*.xml

分析:classpath表示程序编译后的资源路径,/mapper/** 表示编译后的 mapper 所在路径,** 表示此路径下的任何层级,程序统一会在这个路径下找到 mapper.xml 文件。

4. mybatis 使用示例

4.1. 创建 service 层

src/main/java/com/nathan/wiki/service 下创建 TestService

package com.nathan.wiki.service;

@Service
public class TestService {

    @Resource
    private TestMapper testMapper;

    public List<Test> list() {
        return testMapper.list();

    }
}

4.2. 创建 Controller 层

src/main/java/com/nathan/wiki/controller 创建 TestController。并创建方法 list

package com.nathan.wiki.controller;

//使用restController
@RestController
public class TestController {

    @Value("${test.hello:TESTHELLO}")
    private String testHello;

    @Resource
    private TestService testService;

//    @RequestMapping("/hello")
    @GetMapping("/hello")
    public String hello() {
        return "Hello World!  " + testHello;
    }

    @PostMapping("/hello/post")
    public String helloPost(String name) {
        return "Hello World Post, " + name;
    }

    @GetMapping("/test/list")
    public List<Test> list(){
        return testService.list();
    }

}

4.3. 使用 Idea http 测试请求

http/test.http 中编写测试 url。

GET http://localhost:8080/test/list

测试结果:
image

5. 梳理流程

image

posted @ 2022-05-06 13:35  茶哩哩  阅读(97)  评论(0编辑  收藏  举报