文章目录

  • 前期准备:
  • 步骤一:建立实体类,需要跟数据库表字段保持一致
  • 步骤二:建立mapper接口,定义要操作的数据库的动作
  • 步骤三:建立mapper的xml文件,写具体的sql语句
  • 步骤四:建立service类,处理业务逻辑
  • 步骤五:在controller类中展示处理结果
  • 验证



如何通过springboot来写一个简单的接口?

想要知道怎么写可能只需要几步,半小时足矣
本篇文章只是教大家如何快速地使用

但是具体是为什么这样用?以及背后的原理,请大家先认真学习javaweb-servlet-ssm框架等等,这里就不做过多的讲解。

前期准备:

首先在idea中新建项目:
new project-spring initializr一路next(如有需要修改的信息,也可以自己修改,不重要)

boot java spring 接口自动化 springboot编写接口_数据库

boot java spring 接口自动化 springboot编写接口_mysql_02

注意,这里要记得选上,作用是在初始化的时候,需要那些东西idea就帮你初始化进去(当然,后期也能自己手动加,但是这里为了方便学习,还是该选的都选上)

  • developer tools —spring boot devtools
  • boot java spring 接口自动化 springboot编写接口_接口_03

  • web —spring web
  • boot java spring 接口自动化 springboot编写接口_接口_04

  • SQL—jdbc api—mysql driver —mybatis framework
  • boot java spring 接口自动化 springboot编写接口_接口_05

  • 最后选完了,确保,右边栏selected dependencies为如下:

boot java spring 接口自动化 springboot编写接口_接口_06


再一路next。。等待加载完成

再在MySQL数据库中准备一个student表:

boot java spring 接口自动化 springboot编写接口_spring boot_07

接着,把src\main\resources中的application.properties文件改名成application.yml,这是因为yml文件的结构比较清晰,好看易懂

application.yml文件是一个配置文件,作用是可以配置一些数据库信息,他来告诉springboot我们的数据库账号密码呀,表名是啥等等。

boot java spring 接口自动化 springboot编写接口_mysql_08

boot java spring 接口自动化 springboot编写接口_接口_09


以下是我的application.yml,你们可以根据自己的实际情况修改对应的信息:

server:
  port: 8081
spring:
  #数据库连接配置
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/dt55?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
    username: root
    password: 888888

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

验证先前配置是否成功:点开src\main\java\com\wzy\demo\DemoApplication.java

点击箭头所指的运行按钮:

boot java spring 接口自动化 springboot编写接口_spring boot_10

若控制台出现:

boot java spring 接口自动化 springboot编写接口_数据库_11


并且在浏览器中输入http://localhost:8081/会出现:

boot java spring 接口自动化 springboot编写接口_mybatis_12

则代表配置成功

步骤一:建立实体类,需要跟数据库表字段保持一致

在src\main\java\com\wzy\demo目录下新建一个名为entity包

boot java spring 接口自动化 springboot编写接口_mybatis_13


再在entity包下,新建一个名为Student的class,这个Student即为实体类,该实体类即对应数据库中的表,类中的属性与数据库字段保持一致,并且加上构造函数以及get、set方法:

public class Student {
    private int id;
    private String name;
    private int age;
    private String hobby;
    private String address;

    public Student(int id, String name, int age, String hobby, String address) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.hobby = hobby;
        this.address = address;
    }

    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 getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getHobby() {
        return hobby;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

步骤二:建立mapper接口,定义要操作的数据库的动作

操作的数据库的动作比如:查询、更新、删除等等

这些动作就是mapper

在src\main\java\com\wzy\demo目录下新建一个名为mapper包

boot java spring 接口自动化 springboot编写接口_mysql_14


再在mapper包下,新建一个接口StudentMapper又因为,数据库中的一行数据就对应着一个对象

boot java spring 接口自动化 springboot编写接口_数据库_15

这里假设,我们想要找到所有的学生信息。

@Mapper
public interface StudentMapper {
    List<Student> findAllStudent();
}

步骤三:建立mapper的xml文件,写具体的sql语句

再在resources目录下建立一个名为mapper的包,并且在mapper的包下新建一个名为StudentMapper.xml的文件。这个文件就是告诉java具体要写哪些sql语句。

boot java spring 接口自动化 springboot编写接口_接口_16

<?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.wzy.demo.mapper.StudentMapper">
    <select id="findAllStudent" resultType="com.wzy.demo.entity.Student">
        SELECT * FROM student
    </select>
</mapper>

注意,这里的namespace就是指向哪一个mapper
id是mapper里面的方法名,resultType就是返回的类型

这里与前文中application.yml的mapper-locations相对应

boot java spring 接口自动化 springboot编写接口_mybatis_17

步骤四:建立service类,处理业务逻辑

步骤三已经得到了数据了,但是展示给前端时,需要根据自己的业务逻辑对数据进行进一步的加工,所以这里在src\main\java\com\wzy\demo下建立service包,并且在service包中,新建一个StudentService类,此类的作用是处理相应的业务逻辑

//@Service的意思是将其实例化,
//之前如果有一个class,是不是需要new一个对象才可以用,
//这里就可以理解成会自动帮你new,new完了之后,将实例加到了spring容器当中
@Service
public class StudentService {

    //引进StudentMapper,@Autowired的意思就是将其实例化,通过autowired从spring容器中拿出来,供我们使用
    @Autowired
    private StudentMapper studentMapper;

    //处理业务逻辑,这里由于业务过于简单,就空着,查询出什么我就返回什么
    public List<Student> findAllStudent() {
        return studentMapper.findAllStudent();
    }
}

步骤五:在controller类中展示处理结果

在src\main\java\com\wzy\demo下建立controller包,并且在controller包中,新建一个StudentController类,此类的作用是将信息传到前端,就是负责给浏览器返回相应的数据。

//@RestController会自动帮一个对象转换成json的格式
@RestController
public class StudentController {

    @Autowired
    private StudentService studentService;

    //@RequestMapping("/getstudent")的意思告诉前端相应的地址访问
    @RequestMapping("/getstudent")
    public List<Student> getStudent(){
        return studentService.findAllStudent();
    }

}

验证

浏览器输入:http://localhost:8081/getstudent

出现数据库相关信息,试验成功

boot java spring 接口自动化 springboot编写接口_spring boot_18