文章目录
背景介绍
java版本:11.0.18
IDEA安装插件:lombok
案例描述
对用户表编写增删查改接口,具体接口如下:
- 获取用户列表 http://localhost:8081/user/getUserList
- 根据请求路径上的id 获取用户信息 http://localhost:8081/user/getUserInfo/1
- 根据请求参数上的id 获取用户信息 http://localhost:8081/user/getUserInfoById?id=1
- 新增用户或更新已存在的用户信息 http://localhost:8081/user/saveOrUpdate
- 根据请求路径上的id 删除用户 http://localhost:8081/user/deleteUser/1
- 根据请求参数上的id 删除用户 http://localhost:8081/user/deleteUserById?id=1
一、新建数据库【test_db】、数据库里新建一个用户表【user】,具体内容如下图所示
自行安装mysql窗口数据库创建表哦,创建过程这里就不具体写啦
二、新建maven项目
1、点击 文件 新建 项目
2、选择Maven 下一步
3、输入工程名称 选择项目存放位置 完成
三、配置pom.xml文件
1、添加依赖,pom.xml文件的内容如下
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>UserApi</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
</parent>
<dependencies>
<!--web启动依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--导入MySQL的驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<!--SpringBoot测试依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<version>2.5.1</version>
</dependency>
<!--MyBatis-plus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<!--lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<!--添加maven插件,这个插件,可以将应用打包成一个可执行的jar包 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.1</version>
</plugin>
</plugins>
</build>
</project>
2、配置后点击右侧加载更新依赖图标
四、项目的具体内容
1、新建包、文件
(1)新建一个包【com.user.api】
(2)在【com.user.api】包下,新建启动器类 【UserApiApplication】
(3)在【com.user.api】包下,新建包【common】存放公共文件,在【common】包下,新建【Result】类,规范API接口返回给前端的格式。
(4)在【com.user.api】包下,新建包【controller】存放控制器类,在【controller】包下,新建【UserController】类,写API
(5)在【com.user.api】包下,新建包【entity】存放实体类,在【entity】包下,新建【User】类,用户表实体
(6)在【com.user.api】包下,新建包【mapper】存放映射文件,在【mapper】包下,新建【UserMapper】接口
(7)在【com.user.api】包下,新建包【service】存放服务类,在【service】包下,新建【UserService】服务接口
(8)在【com.user.api.service】包下,新建包【Impl】存放实现服务类的接口文件,在【Impl】包下,新建【UserServiceImpl】服务接口实现类
(9)在resouces文件夹下新建文件【application.yml】,编写启动器的一些配置
2、各文件的代码
【application.yml】启动器配置文件
server:
# 端口
port: 8081
spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
username: root
password: 123456
# 时间格式转换
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
level:
com:
offcn:
mapper: debug
【UserApiApplication】启动器类
package com.user.api;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.user.api.mapper")
public class UserApiApplication {
public static void main(String[] args) {
SpringApplication.run(UserApiApplication.class,args);
}
}
【User】实体类
@Data使用了lombok插件,自动生成set get等方法
package com.user.api.entity;
import lombok.Data;
@Data
public class User {
private Integer id;
private String name;
private Integer age;
}
【UserMapper】接口 映射文件
package com.user.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.user.api.entity.User;
public interface UserMapper extends BaseMapper<User> {
}
【UserService】服务接口
package com.user.api.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.user.api.entity.User;
public interface UserService extends IService<User> {
}
【UserServiceImpl】服务接口实现类
package com.user.api.service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.user.api.entity.User;
import com.user.api.mapper.UserMapper;
import com.user.api.service.UserService;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
【Result】类,规范API接口返回给前端的格式。
package com.user.api.common;
import lombok.Data;
import java.io.Serializable;
@Data
public class Result implements Serializable {
private Integer code;
private String msg;
private Object data;
public static Result success(Object data){
Result result = new Result();
result.setCode(200);
result.setData(data);
result.setMsg("操作成功");
return result;
}
public static Result success(String message,Object data){
Result result = new Result();
result.setCode(200);
result.setData(data);
result.setMsg(message);
return result;
}
public static Result fail(String message){
Result result = new Result();
result.setCode(-1);
result.setData(null);
result.setMsg(message);
return result;
}
public static Result fail(String message,Object data){
Result result = new Result();
result.setCode(-1);
result.setData(data);
result.setMsg(message);
return result;
}
}
【UserController】控制器类,写API
package com.user.api.controller;
import com.user.api.common.Result;
import com.user.api.entity.User;
import com.user.api.service.UserService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
//获取用户列表 http://localhost:8081/user/getUserList
@GetMapping("getUserList")
private Result getUserList(){
return Result.success(userService.list());
}
//根据请求路径上的id 获取用户信息 http://localhost:8081/user/getUserInfo/1
@GetMapping("getUserInfo/{id}")
private Result getUserInfo(@PathVariable(name = "id") int id){
if(userService.getById(id) == null){
return Result.fail("没有此条记录");
}else {
return Result.success(userService.getById(id));
}
}
//根据请求参数上的id 获取用户信息 http://localhost:8081/user/getUserInfoById?id=1
@GetMapping("getUserInfoById")
private Result getUserInfoById(@Validated @RequestParam int id){
if(userService.getById(id) == null){
return Result.fail("没有此条记录");
}else {
return Result.success(userService.getById(id));
}
}
//新增用户或更新已存在的用户信息 http://localhost:8081/user/saveOrUpdate
@PostMapping("saveOrUpdate")
private Result saveOrUpdate(@Validated @RequestBody User user){
User temp = null;
String msg = "更新成功!";
if(user.getId() != null) {//RequestBody 存在id字段
temp = userService.getById(user.getId());
if(temp == null){ //此用户不存在,新增用户
temp = new User();
temp.setId(user.getId());
msg = "新增成功!";
}
}else { //RequestBody 不存在id字段就是新增
temp = new User();
temp.setId(userService.list().size()+1);
msg = "新增成功!";
}
temp.setName(user.getName());
temp.setAge(user.getAge());
userService.saveOrUpdate(temp);
return Result.success(msg,null);
}
//根据请求路径上的id 删除用户 http://localhost:8081/user/deleteUser/1
@PostMapping("deleteUser/{id}")
private Result deleteUser(@PathVariable(name = "id") int id){
if(userService.getById(id) != null){
userService.removeById(id);
}
return Result.success(null);
}
//根据请求参数上的id 删除用户 http://localhost:8081/user/deleteUserById?id=1
@PostMapping("deleteUserById")
private Result deleteUserById(@Validated @RequestParam int id){
if(userService.getById(id) != null){
userService.removeById(id);
}
return Result.success(null);
}
}
五、启动项目
方式一:运行项目
方式二:构建打包项目再启动
1、构建打包项目
2、打开cmd 执行命令 【java -jar jar包的位置】 就可以启动项目啦~~~~
查看jar包的位置
打开cmd执行命令,启动项目