文章目录
- 一、下载软件
- 二、表创建
- 三、编写接口代码
-
- [3.1 目录规范,根据域名层级来命名](#3.1 目录规范,根据域名层级来命名)
- [3.2 启动类](#3.2 启动类)
- [3.3 新建文件](#3.3 新建文件)
- 四、启动
引言
本文将从零搭建一个VsCode+ Spring Boot + MySQL
的用户管理接口,覆盖环境准备、建表、编写接口、启动验证的完整链路。最终通过浏览器访问
http://localhost:8080/api/users/1返回 JSON 数据。
一、下载软件
- 下载JDK
下载路径放到JAVA_HOME系统变量下面,在Path内加入%JAVA_HOME%\bin启动地址 - 下载MAVEN
下载内容后设置系统变量,跟JDK设置类似 - 下载MySQL
选择最全安装,带有sever、Workbench(可视化操作) - 下载vs code以及插件
| 插件名称 | 作用 |
|---|---|
| Extension Pack for Java | Java 开发全家桶(含 Maven、调试、语法提示) |
| Spring Boot Extension Pack | Spring Boot 专用支持(含配置文件提示) |
| Lombok Annotations Support | 让 @Data 等注解生效 |
二、表创建
- mysql安装,默认端口3060,自己设置密码
- 点击增加新Tap按钮,先链接:Reconnect to DBMS,输入一下命令,点执行命令
- 新增完表结构,增加几条测试数据
sql
-- 1. 创建数据库
CREATE DATABASE IF NOT EXISTS demo_db CHARACTER SET utf8mb4;
-- 2. 切换到该库
USE demo_db;
-- 3. 创建用户表
CREATE TABLE `user` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
`age` INT NULL DEFAULT NULL COMMENT '年龄',
`email` VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 4. 插入测试数据(至少3条)
INSERT INTO `user` (`name`, `age`, `email`) VALUES
('张三', 22, 'zhangsan@test.com'),
('李四', 25, 'lisi@test.com'),
('王五', 28, 'wangwu@test.com');
三、编写接口代码
3.1 目录规范,根据域名层级来命名

3.2 启动类
项目唯一入口,规定了自动配置、Mapper存放位置、启动方式等

3.3 新建文件
新建entity/User.java,存放类对象结构(实体类,与表结构有关),自动生成getter/setter,并且设置表对应关系
java
package com.example.demo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
}
新建mapper/UserMapper.java,规定MyBatis映射器,自动集成各种CRUD方法,执行时将自动生成代理对象,将数据生成Sql语句,执行Sql语句或者拿到结果生成数据对象;
java
package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
新建 controller/UserController.java:接口逻辑处理,参数和返回值序列化等
java
package com.example.demo.controller;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/{id}")
public User getById(@PathVariable Long id) {
return userMapper.selectById(id);
}
}
四、启动
- mvn spring-boot:run
- 注意检测版本冲突
遇到不认识的冲突报错,丢给ai解答 - 测试接口
http://localhost:8080/api/users/1
