Spring Boot项目初始化
- 使用idea初始化一个Spring Boot项目
我这里使用的Spring Boot版本是2.3.6.RELEASE,可以自行调整
- 添加maven配置
<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>
</dependency>
<!-- mybatis-plus启动依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<!-- mybatis-plus-generator start -->
<!-- mybatis-plus-generator代码生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
<!-- 生成代码时用到了模板引擎 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- mybatis-plus-generator end -->
<!-- 单元测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Api 文档工具 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.9</version>
</dependency>
<!-- lombok 代码简化工具 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
- yml文件中配置项目端口、上下文路径、数据库连接信息
这里需要修改为你自己的项目端口、上下文路径、数据库连接信息
server:
port: 10200
servlet:
context-path: /admin
spring:
application:
name: admin-system
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/admin_system?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false
username: root
password: root
- Spring Boot启动类配置Mapper包扫描路径
这里需要指定你自己的包扫描路径
- yml文件中配置Mybatis-Plus逻辑删除字段、Sql日志打印和Mapper的xml扫描路径
这里需要指定你自己Mapper的xml扫描路径
mybatis-plus:
global-config:
db-config:
logic-delete-field: flag # 全局逻辑删除字段
logic-delete-value: 0 # 删除标记
logic-not-delete-value: 1 # 正常标记
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # mybatis-plus Sql日志打印
mapper-locations: /mapper/**/*.xml # mapper对应xml扫描路径
实现用户的增删改查
- 创建数据库和用户表
-- 创建数据库
CREATE DATABASE `admin_system` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_0900_ai_ci';
-- 创建用户表
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`account_number` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '账号',
`pwd` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '密码',
`nickname` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '昵称',
`gender` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '性别:男-male;女-female',
`avatar` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '头像',
`phone` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
`email` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '邮箱',
`state` tinyint NOT NULL DEFAULT 1 COMMENT '用户状态:0-禁用;1-启用',
`flag` tinyint NOT NULL DEFAULT 1 COMMENT '删除标记:0-删除;1-正常',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户表' ROW_FORMAT = Dynamic;
- 使用mybatis-plus-generator代码生成器生成实体类、Mapper、Service
具体代码生成器的配置及生成示例请参考我这篇文章:简单使用mybatis-plus-generator代码生成器
- 将代码生成器生成的实体类、Mapper、Service拷贝到项目中
- 整合Knife4j Api文档增强工具
具体Knife4j的配置和使用请参考我这篇文章:Spring Boot 2整合Knife4j
- 编写Controller实现用户的基本增删改查
@RestController
@RequestMapping("/user")
@Api(tags = "用户管理")
public class UserController {
@Autowired
private UserService userService;
/**
* 查询所有用户
*
* @return
*/
@GetMapping("/getAllUsers")
@ApiOperation(value = "查询所有用户")
public List<User> getAllUsers() {
return userService.list();
}
/**
* 添加用户
*
* @param user
* @return
*/
@PostMapping("/addUser")
@ApiOperation(value = "添加用户")
public boolean addUser(@RequestBody User user) {
return userService.save(user);
}
/**
* 查询用户
*
* @param id
* @return
*/
@GetMapping("/getUser/{id}")
@ApiOperation(value = "查询用户")
public User getUser(@PathVariable("id") Integer id) {
return userService.getById(id);
}
/**
* 修改用户
*
* @param user
* @return
*/
@PostMapping("/updateUser")
@ApiOperation(value = "修改用户")
public boolean updateUser(@RequestBody User user) {
return userService.updateById(user);
}
/**
* 删除用户
*
* @param id
* @return
*/
@PostMapping("/deleteUser/{id}")
@ApiOperation(value = "删除用户")
public boolean deleteUser(@PathVariable("id") Integer id) {
return userService.removeById(id);
}
}
- 启动Spring Boot项目,使用Knife4j Api文档工具测试接口
Knife4j访问地址格式: http://{ip}:{port}/{上下文路径}/doc.html
如:http://127.0.0.1:10200/admin/doc.html
成功访问后可以看到以下接口
- 完整代码示例
我已经将项目完整代码上传到码云啦。下面是克隆链接,有兴趣的小伙伴可以克隆到本地去测试哈。
git clone https://gitee.com/xiaolin-v-java/admin-system.git