基于 Spring Boot 和 MyBatis-Plus 的简单用户管理系统

该文章已生成可运行项目,

随着互联网技术的发展,Web 应用程序已成为我们日常生活中不可或缺的一部分。在开发 Web 应用时,Spring Boot 作为一个高效的开发框架,广泛应用于企业级应用的开发中。Spring Boot 提供了一个简单且高效的开发环境,它能自动化配置和开发流程,减少开发者的负担。而在数据持久化方面,MyBatis-Plus 是一个增强 MyBatis 的工具,它提供了很多便捷的方法来简化开发,使得我们可以更专注于业务逻辑。

本文将介绍如何通过 Spring Boot 和 MyBatis-Plus 实现一个简单的用户管理系统,展示如何通过这两个框架实现常见的增删改查(CRUD)功能。我们将详细讲解如何配置 Spring Boot 项目,如何使用 MyBatis-Plus 进行数据库操作,以及如何设计整个项目的架构。

一、开发环境与技术栈

在本项目中,我们使用以下技术栈:

  • Spring Boot:一个用于构建独立的、生产级别的 Spring 应用程序的框架。它极大地简化了开发过程,提供了自动化配置、内嵌 Web 服务器、健康检查、监控等功能。
  • MyBatis-Plus:一个 MyBatis 的增强工具,提供了大量常用的数据库操作功能,如增删改查、分页查询、自动填充等,简化了代码。
  • H2 数据库:一个轻量级的嵌入式数据库,适用于开发和测试环境。在生产环境中,可以根据需求替换为 MySQL、PostgreSQL 等。
  • Lombok:一个 Java 库,用于简化代码,自动生成常用的 getter/setter、toString、hashCode 等方法,减少冗长的代码。

二、项目搭建与配置

1.创建 Spring Boot 项目

我们可以使用 Spring Initializr (https://start.spring.io/)来快速生成一个 Spring Boot 项目。在创建项目时,我们选择以下依赖:

  • Spring Web:用于构建 RESTful Web 服务。
  • MyBatis-Plus:增强 MyBatis,简化数据库操作。
  • H2 Database:用于存储数据,支持内存数据库,适合开发和测试。
  • Spring Boot DevTools:支持热部署和自动重启,提升开发效率。

生成项目后,解压并导入到 IDE(如 IntelliJ IDEA)中。

2.配置 application.yml

在项目的 src/main/resources 目录下,找到 application.yml 文件,并进行如下配置:

spring:
  datasource:
    url: jdbc:h2:mem:testdb
    driver-class-name: org.h2.Driver
    username: sa
    password: password
    hikari:
      maximum-pool-size: 10
  mybatis-plus:
    mapper-locations: classpath:/mappers/**/*.xml
    type-aliases-package: com.example.demo.entity
    global-config:
      db-config:
        id-type: auto  # 主键策略:AUTO

在这段配置中,我们配置了数据源的连接信息,指定使用 H2 数据库。mybatis-plus 配置中,我们指定了映射文件和实体类所在的包。

3.添加 Maven 依赖

pom.xml 中,我们需要添加 Spring Boot、MyBatis-Plus、H2 数据库和 Lombok 的相关依赖:

<dependencies>
    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- MyBatis-Plus Starter -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.5.0</version> <!-- 请根据需要使用适当的版本 -->
    </dependency>

    <!-- H2 Database (可以替换为其他数据库,例如MySQL) -->
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!-- Lombok (简化代码) -->
    <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>
</dependencies>

这些依赖项帮助我们引入了 Spring Boot Web、MyBatis-Plus 和 H2 数据库的支持。

三、项目结构与功能实现

1.创建数据库实体类

首先,我们需要为数据库表创建实体类。在本例中,我们将创建一个简单的用户表,实体类如下:

package com.example.demo.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import lombok.Data;

@Data
@TableName("user")
public class User {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private String username;
    private String email;
    private Integer age;
}
  • @TableName 注解指定了数据库中的表名。
  • @TableId 注解标记了主键,并指定了主键的生成策略(AUTO 表示自动生成)。

2.创建 Mapper 接口

接下来,我们创建一个 Mapper 接口,它继承自 BaseMapper,这个接口为我们提供了 MyBatis-Plus 的基本数据库操作功能:

package com.example.demo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;

public interface UserMapper extends BaseMapper<User> {
    // 可以添加自定义的查询方法
}

BaseMapper 提供了许多常用的数据库操作方法,如 insertdeleteupdateselect,无需手动编写 SQL。

3.创建 Service 层

在 Service 层中,我们定义了与数据库交互的业务逻辑。通过继承 MyBatis-Plus 提供的 ServiceImpl,我们能够实现 CRUD 操作。

package com.example.demo.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    // 可以在这里添加自定义的业务逻辑
}

4.创建 Controller 层

Controller 层是暴露 API 接口的地方。我们可以定义 RESTful 风格的接口,实现用户的增删改查操作。

package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    // 创建用户
    @PostMapping("/create")
    public String createUser(@RequestBody User user) {
        userService.save(user);
        return "User created successfully!";
    }

    // 获取所有用户
    @GetMapping("/list")
    public List<User> listUsers() {
        return userService.list();
    }

    // 根据ID获取用户
    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userService.getById(id);
    }

    // 更新用户
    @PutMapping("/update")
    public String updateUser(@RequestBody User user) {
        userService.updateById(user);
        return "User updated successfully!";
    }

    // 删除用户
    @DeleteMapping("/delete/{id}")
    public String deleteUser(@PathVariable Long id) {
        userService.removeById(id);
        return "User deleted successfully!";
    }
}
  • @RestController 注解表示这是一个控制器,处理 HTTP 请求。
  • @RequestMapping 指定了路径前缀,@PostMapping@GetMapping@PutMapping 和 @DeleteMapping 分别用于处理不同类型的 HTTP 请求。

5.启动主类

直接启动主类就可以运行整个项目了。

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

总结

Spring Boot 和 MyBatis-Plus 的结合使得开发 Web 应用程序变得更加简洁、高效。MyBatis-Plus 的自动化功能和 Spring Boot 的简化配置,使得整个开发过程更加灵活且不繁琐,适用于大部分企业级应用的快速开发。

本文章已经生成可运行项目
本项目使用 Spring Boot 搭建, 用于加深对 Spring Boot 与 Shiro 的学习, 项目特色是支持 restful 风格权限控制, 支持对同一 URL, 不同 HTTP Mehtod 的权限控制, 适用于更多的场景. 预览地址: http://ewt.186g.cn 默认管理员账号: admin, 密码: 123456. 普通用户账号: user, 密码: 123456. 为了不影响其他人的浏览体验, 请尽量不要进行删除类的敏感操作. admin 为超级管理员, 自动拥有全部权限. 系统特色 支持根据同 URL, 不同 HTTP Method 来校验权限, 更支持 restful 场景. 集成 OAuth2 登录, 且提供了接口易于拓展开发. 全局异常处理. 根据请求方式区分返回 json 数据还是错误页面. Logback MDC 支持, 将当前登录人操作者 IP 加入日志中. JSR-303 数据校验 运行环境 JDK 1.8 MySQL 5.7 Redis 配置文件 打开 application.properties 修改 MySQL Redis 连接信息. spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.cache.type=redis spring.datasource.username=root spring.datasource.password=123456 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/shiro_action?useSSL=false&characterEncoding=UTF8 启动项目 在完成了上述步骤后,找到 ShiroActionApplication 启动类, 启动即可. 启动后访问地址为:http://localhost:8080 , 用户名:admin, 密码:123456. 技术选型 前端 前端框架: Layui 后台模板: Z-Admin 后端 SpringBoot 2.2.3.RELEASE Shiro 1.4.0 Mybatis-Plus3.1.2 Druid 1.1.10 PageHelper 1.2.9 Shiro-Redis 3.2.3
项目描述 在上家公司自己集成的一套系统,用了两个多月的时间完成的:Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级开发系统 Springboot作为容器,使用mybatis作为持久层框架 使用官方推荐的thymeleaf做为模板引擎,shiro作为安全框架,主流技术 几乎零XML,极简配置 两套UI实现(bootstrap+layer ui),可以自由切换 报表后端采用技术: SpringBoot整合SSM(Spring+Mybatis-plus+ SpringMvc),spring security 全注解式的权限管理JWT方式禁用Session,采用redis存储token及权限信息 报表前端采用Bootstrap框架,结合Jquery Ajax,整合前端Layer.js(提供弹窗)+Bootstrap-table(数据列表展示)+ Bootstrap-Export(各种报表导出SQL,Excel,pdf等)框架,整合Echars,各类图表的展示(折线图,饼图,直方图等),使用了layui的弹出层、菜单、文件上传、富文本编辑、日历、选项卡、数据表格等 Oracle关系型数据库以及非关系型数据库(Redis),Oracle 性能调优(PL/SQL语言,SQL查询优化,存储过程等),用Redis做中间缓存,缓存数据 实现异步处理,定时任务,整合Quartz Job以及Spring Task 邮件管理功能, 整合spring-boot-starter-mail发送邮件等, 数据源:druid 用户管理,菜单管理,角色管理,代码生成 运行环境 jdk8+oracle+redis+IntelliJ IDEA+maven 项目技术(必填) Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis 数据库文件 压缩包内 jar包文件 maven搭建 Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统 http://localhost:/8080/login admin admin Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值