SpringBoot开发简单接口流程

SpringBoot开发接口

初始化

新建项目

(1)使用 IDEA 的过程,新建Project,左侧选 Spring Initializr,点Next

(2)选 8 版本,点Next

(3)左侧选择Web,勾选上Spring Web,点Next,起名之后点Finish,项目创建完毕

写配置

找到src/main/resources/application.properties文件,重命名将后缀改为 application.yml

写如下配置:

server:
  port: 8080
spring:
  # 数据库连接配置
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    # 127.0.0.1:3306/后的spring_test为数据库名,修改为自己的数据库名
    url: jdbc:mysql://127.0.0.1:3306/spring_test?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
    # 修改为自己数据库的用户名和密码
    username: root
    password: 123456

# mybatis相关配置
mybatis:
  # mybatis配置文件
  mapper-locations: classpath:mapper/*.xml

数据库

数据库为:spring_test ,新建表person ,数据如下

gender为性别字段,0为女,1为男

id name gender hobby
1 张三 1 踢足球,跑步
2 李四 0 追剧,做美甲
3 王五 1 开黑,吃烧烤
4 赵六 0 刷段子,做美食

初始化完成,写代码

一、model

src/main/java/com.example 下新建 model 包,model下新建类,跟数据库字段保持一致,如:

Person.java

package com.example.model;

public class Person {

    private int id;
    private String name;
    private int gender; // 0为女,1为男
    private String hobby;

    public Person() {
    }

    public Person(int id, String name, int gender, String hobby) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.hobby = hobby;
    }

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public int getGender() {
        return gender;
    }

    public void setGender(int gender) {
        this.gender = gender;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", gender=" + gender +
                ", hobby='" + hobby + '\'' +
                '}';
    }
}

二、mapper

src/main/java/com.example 下新建 mapper 包。mapper 包是处理动作,操作,更新/删除/插入/查询等,在包下新建一个 interface 接口,如

PersonMapper.java

package com.example.mapper;

import com.example.model.Person;

import java.util.List;

@Mapper	// 加注解,必须
public interface PersonMapper {
    List<Person> findAll();
}

三、mapper.xml

src/main/resources 下新建mapper 文件夹,这里写具体的sql语句,新建file,如

PersonMapper.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">

<!-- namespace映射java / mapper接口的位置 -->
<mapper namespace="com.example.mapper.PersonMapper">
    <!-- id为java / mapper / PersonMapper.java下的方法名;resultType这里为实体类,写实体类Person的位置 -->
    <select id="findAll" resultType="com.example.model.Person">
        SELECT * FROM person
    </select>
</mapper>

如果第2行的路径http://mybatis.org/dtd/mybatis-3-mapper.dtd爆红,说明mybatis没引进来,在pom.xml中引入即可。

引入代码如下

<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>

四、service

src/main/java/com.example 下新建 service 包,这是业务逻辑层,对数据过滤、处理等等;这里我不写详细的业务逻辑,只是模拟一下service层的使用,如

PersonService.java

package com.example.service;

import com.example.mapper.PersonMapper;
import com.example.model.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class PersonService {
    // 这个Service的操作为从PersonMapper中接过findAll()数据在return出去
    @Autowired
    private PersonMapper personMapper;

    public List<Person> findAll(){
        return personMapper.findAll();
    }
}

五、controller

src/main/java/com.example 下新建 controller 包,controller 层为最终前端访问的接口实现层,在这里进行增删改查的 RESTful 接口的编写,如

PersonController.java

package com.example.controller;

import com.example.model.Person;
import com.example.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@CrossOrigin(origins = "*") // 表示该类方法允许跨域
@RestController
public class PersonController {

    @Autowired  // 这里拿到处理完业务逻辑的PersonService的数据
    private PersonService personService;

    // 获取所有人的信息
    @RequestMapping("getPerson")
    public List<Person> getPerson(){
        return personService.findAll();
    }
}

项目目录

展示的为 src/java/main 下的目录及文件

├─java
│ └─com
│ └─example
│ │ Application.java ------------------- 程序入口,main方法在此编写
│ │
│ ├─controller --------------------------- 控制层,用来实现接口的地方
│ │ PersonController.java
│ │
│ ├─mapper ----------------------------- 动作,操作,更新/删除/插入/查询等
│ │ PersonMapper.java
│ │
│ ├─model ------------------------------- 实体类层,又叫 bean | entity | pojo
│ │ Person.java
│ │
│ └─service ------------------------------ 业务逻辑层,对数据过滤、处理等等
│ PersonService.java

└─resources
│ application.yml -------------------------- SpringBoot 配置文件

├─mapper ------------------------------------ 写具体sql语句的地方
│ PersonMapper.xml

└─ ......

访问成功

到此,浏览器已经出现数据

posted @ 2022-05-01 21:38  摇摆的鱼  阅读(4639)  评论(0编辑  收藏  举报