此步骤是按照在Spring Boot 框架集成Knife4j_西瓜霜3.0的博客-CSDN博客文章的基础配置下进行开发
一.首先我们连接数据库需要引入mysql依赖和在application.yml中进行连接数据库配置
在pom.xml中添加如下代码
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
在application.yml中添加
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/jktest?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8
username: root
password: root
完整项目结构为:
二.在启动类上面添加@MapperScan注解,可以扫描包下的mapper文件夹
三.创建用户实体类
新建domain包,在包中创建SysRole实体类
package com.example.testknife4j.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@TableName("sys_role")
public class SysRole {
@TableId(type = IdType.AUTO)
private Long id;
//@NotBlank(message = "角色名称不能为空")
@ApiModelProperty(value = "角色名称")
@TableField("role_name")
private String roleName;
@ApiModelProperty(value = "角色编码")
@TableField("role_code")
private String roleCode;
@ApiModelProperty(value = "描述")
@TableField("description")
private String description;
}
类中使用的注解:
@TableName:表名注解,标识实体类对应的表
@TableId:主键注解,type = IdType.AUTO(数据库 ID 自增)
@TableField:字段注解(非主键)
四.创建对应的数据库表
CREATE TABLE `sys_role` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色id',
`role_name` varchar(20) NOT NULL DEFAULT '' COMMENT '角色名称',
`role_code` varchar(20) DEFAULT NULL COMMENT '角色编码',
`description` varchar(255) DEFAULT NULL COMMENT '描述',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='角色';
五.创建mapper接口并继承BaseMapper
package com.example.testknife4j.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.testknife4j.domain.SysRole;
import org.apache.ibatis.annotations.Mapper;
public interface SysRoleMapper extends BaseMapper<SysRole> {
}
六.CRUD测试
package com.example.testknife4j;
import com.example.testknife4j.domain.SysRole;
import com.example.testknife4j.mapper.SysRoleMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
class Testknife4jApplicationTests {
@Autowired
private SysRoleMapper mapper;
@Test
// 添加
void testInsert() {
SysRole sysRole = new SysRole();
sysRole.setRoleName("总经理");
sysRole.setRoleCode("10010");
sysRole.setDescription("一人之下");
int result = mapper.insert(sysRole);
System.out.println(result);
System.out.println(sysRole);
}
@Test
// 删除
void testDelete() {
mapper.deleteById(2L);
}
@Test
// 修改
void testUpdate() {
SysRole sysRole = new SysRole();
sysRole.setId(1L);
sysRole.setRoleName("董事长");
sysRole.setRoleCode("10000");
sysRole.setDescription("公司我最大");
mapper.updateById(sysRole);
}
@Test
// 根据id查询
void testGetById() {
SysRole sysRole = mapper.selectById(1L);
System.out.println(sysRole);
}
@Test
// 查询全部
void testGetAll() {
List<SysRole> sysRoles = mapper.selectList(null);
System.out.println(sysRoles);
}
}
运行效果全部成功