步骤
- 0 准备工作
- 1 创建Maven项目
- 2 配置Maven依赖
- 3 配置数据源
- 4 项目结构
- 5 创建实体类
- 6 创建数据访问层
- 7 创建服务层
- 8 创建Controller层
- 9 启动项目
- 10 使用Postman测试接口
0 准备工作
- 下载并安装 IntelliJ IDEA
- 下载并安装 MySQL 数据库
- 下载并安装Postman测试工具
- 使用 Navicat 创建一个 MySQL 数据库
1 创建Maven项目
- 打开 IntelliJ IDEA,选择 "File"→ “New” → “Project”。
- 选择"Maven"作为项目类型,并设置项目名称、项目位置。
- 设置Group Id和Artifact Id,点击"Create"创建项目。
2 配置Maven依赖
在pom.xml文件中添加SpringBoot和MyBatis-Plus等的依赖:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 定义父项目,使用Spring Boot 的版本管理 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.17</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 项目的基本信息 -->
<groupId>com.z</groupId>
<artifactId>MySSM</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>MySSM</name>
<description>MySSM</description>
<!-- 定义Java版本 -->
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- Spring Boot Web Starter,包含了Spring MVC等 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MyBatis Spring Boot Starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.1</version>
</dependency>
<!-- MySQL Connector Java -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Lombok,简化Java代码 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- Spring Boot Starter Test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- MyBatis-Plus Starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
<!-- Swagger Annotations -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.22</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<builder>paketobuildpacks/builder-jammy-base:latest</builder>
</image>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
使用Maven工具或IDEA的自动构建功能,下载依赖。
若出现如下错误:
那么点击Maven设置,选择Maven主路径为本地的Maven下载路径:
3 配置数据源
在application.yml文件中配置数据库连接等信息:
server:
# 端口
port: 8080
spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/your_database_name?characterEncoding=utf-8
username: your_username
password: your_password
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
mybatis-plus:
# mapper文件映射路径
mapper-locations: classpath*:mapper/*.xml
configuration:
# 打印SQL语句
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
替换上面的示例中的your_database_name
、your_username
、your_password
为实际数据库中的信息和数据。
4 项目结构
项目结构如下图所示:
5 创建实体类
创建实体类(entity),例如Student.java:
package com.z.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@TableName("student")
public class Student implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "性别")
private String sex;
@ApiModelProperty(value = "年龄")
private Integer age;
@ApiModelProperty(value = "专业")
private String major;
}
6 创建数据访问层
创建数据访问层(mapper),例如StudentMapper.java:
package com.z.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.z.entity.Student;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface StudentMapper extends BaseMapper<Student> {
}
创建对应的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.z.mapper.StudentMapper">
</mapper>
7 创建服务层
创建服务层(service)及其实现,例如StudentService.java:
Service层:
package com.z.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.z.entity.Student;
public interface StudentService extends IService<Student> {
}
Service实现层:
package com.z.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.z.entity.Student;
import com.z.mapper.StudentMapper;
import com.z.service.StudentService;
import org.springframework.stereotype.Service;
@Service
public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student> implements StudentService {
}
8 创建Controller层
创建Controller层,处理业务逻辑,例如StudentController.java(以返回数据列表为例):
package com.z.controller;
import com.z.entity.Student;
import com.z.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/test")
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping("/list")
public List<Student> listStudent() {
return studentService.list();
}
}
9 启动项目
编写Main.java运行项目,并通过IDEA的启动按钮启动项目:
package com.z;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
10 使用Postman测试接口
-
在MySQL数据库中新建一个数据表student,其中存放几条测试数据:
-
打开Postman,新建一个Get请求,并输入对应Controller中的请求URL进行测试,测试结果如下:
前端界面可通过该接口展示数据表中的数据。