SSMP整合案例第一步 制作分析模块创建与开发业务实体类

简介: SSMP整合案例第一步 制作分析模块创建与开发业务实体类

制作分析

我们要实现一个模块的增删改查

实际开发中mybatisplus用的不多,他只能对没有外键的单表进行简单的查询

MyBatis-Plus 是一个增强的 MyBatis 框架,提供了许多便捷的功能来简化和增强对数据库的操作。虽然 MyBatis-Plus 在一些场景下对于复杂的数据库关联操作可能不够直接或完全支持,但它仍然可以用于处理包括多表关联查询在内的许多实际开发中的数据库操作。

MyBatis-Plus 的主要功能和用途包括:

  1. 代码生成器: MyBatis-Plus 提供了代码生成器,可以根据数据库表结构自动生成对应的实体类、Mapper 接口以及 Service 层代码,减少手动编写重复代码的工作量。
  2. 通用 CRUD 方法: MyBatis-Plus 提供了一系列的通用 CRUD 方法,如 insertupdateByIddeleteById 等,可以方便地进行单表的增删改查操作。
  3. 条件构造器: 提供了灵活的条件构造器(Wrapper),支持根据条件动态拼接 SQL 查询语句,可以处理复杂的查询需求。
  4. 分页插件: MyBatis-Plus 内置了分页插件,支持在不同数据库上进行分页查询,简化了分页查询的实现。
  5. 乐观锁插件: 支持乐观锁的实现,用于处理并发更新时的数据一致性问题。
  6. SQL 注入防止: 默认开启了 SQL 注入防止功能,能够有效防止 SQL 注入攻击。

对于复杂查询和外键的处理:

  • 复杂查询: 虽然 MyBatis-Plus 对于复杂的多表关联查询没有提供直接的支持,但可以通过自定义 SQL 或使用 Wrapper 来处理复杂查询需求。例如,可以使用 @Select 注解自定义 SQL 查询语句,或者使用 MyBatis-Plus 提供的 LambdaQueryWrapper、QueryWrapper 等来动态拼接复杂的条件查询。
  • 外键处理: MyBatis-Plus 并不提供对外键约束的直接支持,但可以通过自定义 SQL 或者在业务逻辑中处理外键关系,来实现外键的查询和操作。

虽然 MyBatis-Plus 在某些复杂的数据库操作场景可能需要额外的自定义或手动处理,但在大多数情况下,它仍然是一个非常实用和方便的持久层框架,能够显著提高开发效率并简化数据库操作。

但在这个案例中我们还是选择mybatisplus开发

模块创建

我们把所有服务器都放在一起

就不用前后端分离

我们尝试用后端开发进行全栈开发

全栈开发通常涵盖了前端和后端开发的技能,使开发者能够独立完成整个应用程序的开发和部署。尽管通常全栈开发会涉及到前端和后端两方面的技术,但这并不意味着一定要完全割裂开发过程。事实上,后端开发在全栈开发中仍然扮演着至关重要的角色。

后端开发在全栈开发中的作用和挑战:

  1. 数据处理和业务逻辑: 后端开发负责处理数据的存储、访问和逻辑处理。这包括数据库设计、API 的编写和管理、安全性等方面的考虑。
  2. 服务端架构和逻辑: 后端开发者需要设计和实现服务端的架构,确保系统的可靠性、扩展性和安全性。这可能涉及到选择合适的框架(如Spring Boot、Node.js等)、数据库管理系统等。
  3. API 设计和开发: 设计和开发后端 API 是后端开发的核心任务之一。这需要与前端开发人员密切合作,确保API的设计满足前端的需求,同时保证数据的安全和有效性。
  4. 安全性和性能优化: 后端开发者需要关注系统的安全性,包括数据的加密、用户认证和授权等方面。此外,还需要优化系统的性能,确保应用在处理大量数据或高并发情况下仍然能够高效运行。
  5. 与前端开发的协作: 尽管全栈开发者可以独立完成前后端的工作,但与专注于前端的开发者协作仍然是至关重要的。这种协作可以帮助确保前后端的功能和界面设计的一致性,并且在技术上能够更好地支持和补充彼此的工作。

在全栈开发中,后端开发的技能和经验是非常宝贵的,它不仅能够帮助你构建强大和可靠的后端服务,还能够为整个应用程序的成功和稳定性贡献重要的部分。因此,尽管全栈开发者需要掌握广泛的技术栈,但后端开发的专业知识和技能仍然是其不可或缺的一部分。

新建项目添加依赖

spring mvc 和 mySQL

添加依赖

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.bigdata1421</groupId>
    <artifactId>ssmp</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>ssmp</name>
    <description>ssmp</description>
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.6.13</spring-boot.version>
    </properties>
    <dependencies>
 
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
 
        <!--Mybatis-plus的依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>
 
        <!--druid的依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.6</version>
        </dependency>
 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
 
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
 
        <!-- 导入lombok的依赖 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
 
        <dependency>
            <groupId>org.xmlunit</groupId>
            <artifactId>xmlunit-core</artifactId>
        </dependency>
 
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
 
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>com.bigdata1421.ssmp.SsmpApplication</mainClass>
                    <skip>true</skip>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
 
</project>

改端口号

小结

开发实体类

开发实体类

用lombok快速开发实体类

实体类通常放在domain包下

首先我们在pom配置文件里面导入lombok的坐标

一个总注解

@Data 注解包含的有set get 还有toString hashcode equals方法

这样写才是完整的

package com.bigdata1421.ssmp.domain;
 
 
import lombok.*;
import org.springframework.context.annotation.Configuration;
 
// lombok开发 用注解封装实体类
 
@Data
@NoArgsConstructor
@Configuration
@Getter
public class User {
    // 定义属性
    private Integer id;
    private String name;
    private Integer age;
    private Integer gender;
}

小结

个人号推广

博客主页

多多!-CSDN博客

Web后端开发

https://blog.csdn.net/qq_30500575/category_12624592.html?spm=1001.2014.3001.5482

Web前端开发

https://blog.csdn.net/qq_30500575/category_12642989.html?spm=1001.2014.3001.5482

数据库开发

https://blog.csdn.net/qq_30500575/category_12651993.html?spm=1001.2014.3001.5482

项目实战

https://blog.csdn.net/qq_30500575/category_12699801.html?spm=1001.2014.3001.5482

算法与数据结构

https://blog.csdn.net/qq_30500575/category_12630954.html?spm=1001.2014.3001.5482

计算机基础

https://blog.csdn.net/qq_30500575/category_12701605.html?spm=1001.2014.3001.5482

回忆录

https://blog.csdn.net/qq_30500575/category_12620276.html?spm=1001.2014.3001.5482

目录
相关文章
|
7月前
基于若依ruoyi-nbcio支持flowable流程分类里增加流程应用类型
基于若依ruoyi-nbcio支持flowable流程分类里增加流程应用类型
180 1
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
|
6月前
|
存储 Java 数据库连接
SSMP整合案例第三步 业务层service开发及基于Mybatis的接口功能拓展
SSMP整合案例第三步 业务层service开发及基于Mybatis的接口功能拓展
44 0
|
6月前
|
Java 程序员
JavaSE——面向对象高级二(3/4)-接口(认识接口、接口的好处)以及接口的综合案例(设计班级学生的信息管理模块)
JavaSE——面向对象高级二(3/4)-接口(认识接口、接口的好处)以及接口的综合案例(设计班级学生的信息管理模块)
40 0
|
7月前
|
前端开发 Java 数据库
springboot项目中信息分页查询的常规操作流程
springboot项目中信息分页查询的常规操作流程
100 0
|
7月前
|
JSON 前端开发 测试技术
Javaweb之SpringBootWeb案例新增部门的详细解析
Javaweb之SpringBootWeb案例新增部门的详细解析
35 0
|
JSON 前端开发 数据格式
项目改造操作(图书管理系统为例)
项目改造操作(图书管理系统为例)
|
前端开发 Java 关系型数据库
实战SSM_O2O商铺_02数据模型设计及实体类的创建
实战SSM_O2O商铺_02数据模型设计及实体类的创建
63 0
|
JSON 前端开发 Java
基于Springboot外卖系统14:菜品新增模块+多个数据表操作+文件上传下载复用
后台系统中可以管理菜品信息,通过新增功能来添加一个新的菜品,在添加菜品时需要选择当前菜品所属的菜品分类,并且需要上传菜品图片,在移动端会按照菜品分类来展示对应的菜品信息 。
283 0
|
存储 安全 算法
区块链游戏DAO模式开发步骤详情 |(源码demo实例分析)
区块链游戏的 DAO 模式开发是指利用 DAO 模式进行游戏开发和管理,其中 DAO 代表着“抵抗者”的意思。这种开发模式颠覆了传统游戏开发中的中心化管理方式,通过去除中介和减少不必要的成本来降低游戏开发的成本。
下一篇
DataWorks