【后端架构完善与接口开发】001-数据库准备、集成 MyBatis

本文档详细介绍了如何在Spring Boot项目中集成MyBatis,从数据库准备到创建实体类、Mapper接口、XML配置,再到Service实现及Controller接口的全过程,最后进行测试。包括了数据库脚本、配置数据源、添加依赖、创建接口和实体类等步骤。
摘要由CSDN通过智能技术生成

二、后端架构完善与接口开发

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

image-20210701205404606

第二步:填写数据库相关内容

image-20210701205441653

1.3 项目根目录下创建文件夹 doc/db/all.sql

要提前在 IDEA 里面导入数据库才可以!

image-20210701205149040

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接口

image-20210710102240807

第八步:在配置文件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

###

第十二步:启动项目,运行测试

image-20210710103841552

第十三步:给表里加数据

insert into `test` (id, name, password) values (1, '测试', 'password');

image-20210710104008200

第十四步:再次测试

image-20210710104108085

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值