文章目录
- 二、后端架构完善与接口开发
- 1、数据库准备
- 2、集成 MyBatis
- 第一步:在 pom.xml 文件内添加依赖
- 第二步:在配置文件 application.properties 中添加数据源
- 第三步:在启动类配置扫描 mapper 的路径
- 第四步:创建实体类 Test
- 第五步:创建 TestMapper 接口
- 第六步:在 Resources 资源目录下创建 mapper 目录,并创建 TestMapper.xml
- 第七步:安装插件 Free Mybatis plugin
- 第八步:在配置文件application.properties里面配置所有 mapper.xml 的路径
- 第九步:创建 service 目录,并创建类 TestService
- 第十步:在 HelloController 添加新接口
- 第十一步:在 test.http 新增测试脚本
- 第十二步:启动项目,运行测试
- 第十三步:给表里加数据
- 第十四步:再次测试
二、后端架构完善与接口开发
1、数据库准备
1.1 sql 脚本
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 ='测试';
1.2 在 IDEA 中导入数据库
第一步:选择 MySQL
第二步:填写数据库相关内容
1.3 项目根目录下创建文件夹 doc/db/all.sql
要提前在 IDEA 里面导入数据库才可以!
2、集成 MyBatis
第一步:在 pom.xml 文件内添加依赖
<!--MySQL-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--MyBatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
第二步:在配置文件 application.properties 中添加数据源
如果没有配置数据源,启动项目会报错!
# 增加数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://XXXX:3306/wiki?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
第三步:在启动类配置扫描 mapper 的路径
package com.zibo.wiki;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.env.Environment;
@SpringBootApplication
@MapperScan("com.zibo.wiki.mapper") // 配置扫描 mapper 的路径
public class WikiApplication {
// 日志
private static final Logger LOG = LoggerFactory.getLogger(WikiApplication.class);
public static void main(String[] args) {
// 修改启动文案
SpringApplication app = new SpringApplication(WikiApplication.class);
Environment env = app.run(args).getEnvironment();
LOG.info("启动成功");
LOG.info("地址: \thttp://127.0.0.1:{}", env.getProperty("server.port"));
}
}
第四步:创建实体类 Test
创建 domain 目录
package com.zibo.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;
}
}
第五步:创建 TestMapper 接口
package com.zibo.wiki.mapper;
import com.zibo.wiki.domain.Test;
import java.util.List;
public interface TestMapper {
List<Test> list();
}
第六步:在 Resources 资源目录下创建 mapper 目录,并创建 TestMapper.xml
<?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.zibo.wiki.mapper.TestMapper" >
<select id="list" resultType="com.zibo.wiki.domain.Test">
select * from `test`
</select>
</mapper>
第七步:安装插件 Free Mybatis plugin
主要用于代码跳转,xml => mapper接口
第八步:在配置文件application.properties里面配置所有 mapper.xml 的路径
# 配置mybatis所有Mapper.xml所在的路径
mybatis.mapper-locations=classpath:/mapper/**/*.xml
第九步:创建 service 目录,并创建类 TestService
package com.zibo.wiki.serivce;
import com.zibo.wiki.domain.Test;
import com.zibo.wiki.mapper.TestMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class TestService {
@Autowired
private TestMapper testMapper;
public List<Test> list(){
return testMapper.list();
}
}
第十步:在 HelloController 添加新接口
package com.zibo.wiki.controller;
import com.zibo.wiki.domain.Test;
import com.zibo.wiki.serivce.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class HelloController {
// 注入TestService
@Autowired
private TestService testService;
// 注入
@Value("${test.hello:我是默认值}")
private String testHello;
@RequestMapping("hello")
public String hello(){
// 使用
return "Hello World!" + testHello;
}
@PostMapping("/helloPost")
public String helloPost(String name){
return "Hello World! " + name;
}
// 添加新接口
@RequestMapping("/list")
public List<Test> list(){
return testService.list();
}
}
第十一步:在 test.http 新增测试脚本
# 快捷键:gtr
GET http://localhost:8080/hello
# Accept: application/json
# 这个类似单元测试
# test-hello 是名字
# function() 里面类似可以写一些日志
#> {%
#client.test("test-hello", function() {
# client.log("测试/hello接口");
# client.log(response.body);
# client.log(JSON.stringify(response.body)); // 虽然idea没有提示JSON,但是可以用
# client.assert(response.status === 200, "返回码不是200");
# client.assert(response.body === "Hello World", "结果验证失败");
#});
#%}
###
# 快捷键:ptrp
POST http://localhost:8080/helloPost
Content-Type: application/x-www-form-urlencoded
name=zibo
###
GET http://localhost:8080/list
Accept: application/json
###
第十二步:启动项目,运行测试
第十三步:给表里加数据
insert into `test` (id, name, password) values (1, '测试', 'password');