SpringBoot | 集成mybatis和案例演示
1. 集成 mybatis
1、添加 mybatis
和 mysql
依赖坐标。
<!-- 集成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
测试结果:
5. 梳理流程
来源: 博客园
作者: 茶哩哩
文章: 转载请注明原文链接:https://www.cnblogs.com/martin-1/p/16228384.html