springboot+mybatis-plus+vue 后台管理系统开发流程
创建spring boot项目
创建Maven项目
直接创建spring项目也行
导入spring boot以及相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--lombok用来简化实体类-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<scope>provided </scope>
</dependency>
编写相关配置
创建application.yml
server:
port: 8800
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/数据库名?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8
username: root
password: root
编写启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceAuthApplication.class,args);
}
}
编写实体类、mapper、service、controller
这部分可以手动写,也可以用mybatis-plus逆向生成工具
逆向生成可以参考 mybatis-plus代码生成器
实体类参考
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.atguigu.model.base.BaseEntity;
import lombok.Data;
@Data
@TableName("sys_role")
public class SysRole extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO) //主键自增策略 MyBatis-Plus默认的主键策略是:ID_WORKER *全局唯一ID*
private Long id;
//角色名称
@TableField("role_name")
private String roleName;
//角色编码
@TableField("role_code")
private String roleCode;
//描述
@TableField("description")
private String description;
}
mapper参考
import com.atguigu.model.auth.SysRole;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SysRoleMapper extends BaseMapper<SysRole> {
}
测试mapper接口
@SpringBootTest
public class SysRoleMapperTest {
@Autowired
private SysRoleMapper sysRoleMapper;
@Test
public void testSelectList() {
System.out.println(("----- selectAll method test ------"));
//UserMapper 中的 selectList() 方法的参数为 MP 内置的条件封装器 Wrapper
List<SysRole> users = sysRoleMapper.selectList(null);//所以不填写就是无任何条件
users.forEach(System.out::println);
}
}
@Test
public void testInsert(){
SysRole sysRole = new SysRole();
sysRole.setRoleName("角色管理员");
sysRole.setRoleCode("role");
sysRole.setDescription("角色管理员");
int result = sysRoleMapper.insert(sysRole);
System.out.println(result); //影响的行数
System.out.println(sysRole); //id自动回填
}
....
service参考
import com.atguigu.model.auth.SysRole;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
public interface SysRoleService extends IService<SysRole> {
}
测试service接口
import com.atguigu.model.system.SysRole;
import com.atguigu.system.mapper.SysRoleMapper;
import com.atguigu.system.service.SysRoleService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SysRoleServiceTest {
@Autowired
private SysRoleService sysRoleService;
@Test
public void testSelectList() {
System.out.println(("----- selectAll method test ------"));
//UserMapper 中的 selectList() 方法的参数为 MP 内置的条件封装器 Wrapper
//所以不填写就是无任何条件
List<SysRole> users = sysRoleService.list();
users.forEach(System.out::println);
}
@Test
public void testInsert(){
SysRole sysRole = new SysRole();
sysRole.setRoleName("角色管理员");
sysRole.setRoleCode("role");
sysRole.setDescription("角色管理员");
boolean result = sysRoleService.save(sysRole);
System.out.println(result); //影响的行数
System.out.println(sysRole); //id自动回填
}
@Test
public void testUpdateById(){
SysRole sysRole = new SysRole();
sysRole.setId(1L);
sysRole.setRoleName("角色管理员1");
boolean result = sysRoleService.updateById(sysRole);
System.out.println(result);
}
@Test
public void testDeleteById(){
boolean result = sysRoleService.removeById(2L);
System.out.println(result);
}
@Test
public void testSelect1() {
QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
queryWrapper.ge("role_code", "role");
List<SysRole> users = sysRoleService.list(queryWrapper);
System.out.println(users);
}
@Test
public void testSelect2() {
LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.ge(SysRole::getRoleCode, "role");
List<SysRole> users = sysRoleService.list(queryWrapper);
System.out.println(users);
}
}
controller参考
import com.atguigu.auth.service.SysRoleService;
import com.atguigu.model.auth.SysRole;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/admin/system/sysRole")
public class SysRoleController {
@Autowired
private SysRoleService sysRoleService;
@GetMapping("findAll")
public List<SysRole> findAll() {
List<SysRole> roleList = sysRoleService.list();
return roleList;
}
}
测试controller接口
http://localhost:8800/admin/system/sysRole/findAll
浙公网安备 33010602011771号