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
│
└─ ......
访问成功
到此,浏览器已经出现数据
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南