配置mybatis

加入依赖

在pom.xml加入mybatis依赖

1
2
3
4
5
6
7
8
9
10
11
12
<!-- 集成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.27</version>
</dependency>

配置数据源

application.properties文件中进行数据源配置

1
2
3
4
5
# 数据库连接
spring.datasource.url=jdbc:mysql://172.17.0.3:3306/wiki?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=wiki
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

增加实体类

在项目包下新建一个domain包,在此包下创建一个实体类,该实体类和表明是一一映射关系。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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;
}
}

新增接口

在项目包下新建mapper包,在该包下新建interface接口。

1
2
3
4
5
6
7
8
9
10
package com.zzzd.wiki.mapper;

import com.zzzd.wiki.domain.Test;

import java.util.List;

public interface TestMapper {
public List<Test> list();
}

创建sql脚本

在resources下创建mapper文件夹,用来存放sql脚本。我们先创建一个TestMapper.xml文件

1
2
3
4
5
6
7
8
9
<?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.zzzd.wiki.mapper.TestMapper" >

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

</mapper>

之后还要在application.properties中增加下面的代码。这样spring会扫描resources/mapper下的所有xml文件,使其他地方可以识别到这个文件。

1
2
# 配置MaBatis所有Mapper.xml的路径
mybatis.mapper-locations=classpath:/mapper/**/*.xml

启动配置

在启动类中增加扫码注解,这样springboot才能扫描到我们创建的mapper包

1
2
3
4
5
6
@ComponentScan("com.zzzd")
@SpringBootApplication
@MapperScan("com.zzzd.wiki.mapper") // 扫描注解
public class WikiApplication {
...
}

使用mybatis

配置完成之后怎么使用呢。我们可以创建service层写业务逻辑,创建controller层写路由部分。

创建service层

在项目包下创建service包,用来写项目逻辑部分。

在service下创建类TestService

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.zzzd.wiki.service;

import com.zzzd.wiki.domain.Test;
import com.zzzd.wiki.mapper.TestMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class TestService {
@Resource
private TestMapper testMapper;
public List<Test> list(){
return testMapper.list();
}
}

在TestService类中增加一个注解@Service,这样Spring才能扫码到这个类。

在类中引入TestMapper这个接口,用@Resource注入进来。我们写了一个list方法,直接调用的TestMapper的list方法。

创建Controller层

在TestController中创建一个get请求,引入service层的TestService,用@Resource将其注入进来。我们在TestController中创建list方法,在里面调用TestService中的list方法。

1
2
3
4
5
6
7
8
9
10
@RestController
public class HelloController {
@Resource
private TestService testService;

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

测试接口

发送get请求到http://localhost:8880/test/list接口就会获得test数据表中的数据。