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

目录
相关文章
|
12天前
|
NoSQL Java 数据库
SpringBoot实用开发篇第三章(数据层解决方案操作)
SpringBoot实用开发篇第三章(数据层解决方案操作)
|
7天前
|
SQL Java 数据库连接
SSMP整合案例第二步 数据层dao开发及实现特殊查询
SSMP整合案例第二步 数据层dao开发及实现特殊查询
6 0
|
24天前
|
Java 程序员
JavaSE——面向对象高级二(3/4)-接口(认识接口、接口的好处)以及接口的综合案例(设计班级学生的信息管理模块)
JavaSE——面向对象高级二(3/4)-接口(认识接口、接口的好处)以及接口的综合案例(设计班级学生的信息管理模块)
10 0
|
2月前
|
数据可视化 数据挖掘 Java
springboot+vue体质测试数据分析及可视化设计(源码+文档)
体质测试数据分析及可视化设计实现了以下功能: 管理员:首页、个人中心、学生管理、教师管理、日常运动管理、运动分析管理、成绩信息管理、论坛管理、系统管理, 学生:首页、个人中心、日常运动管理、运动分析管理、成绩信息管理、论坛管理, 教师:首页、个人中心、日常运动管理、运动分析管理、成绩信息管理、系统管理, 前台首页:首页、论坛信息、公告信息、个人中心、后台管理、客服模块的修改维护操作。
|
2月前
|
前端开发 Java 数据库
springboot项目中信息分页查询的常规操作流程
springboot项目中信息分页查询的常规操作流程
46 0
|
2月前
|
数据安全/隐私保护
若依框架---为什么把添加和更新分成两个接口
若依框架---为什么把添加和更新分成两个接口
69 0
|
2月前
|
Oracle Java 关系型数据库
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
45 0
|
11月前
|
Java 关系型数据库 MySQL
案例09 基于JdbcTemplate的学生信息维护案例
使用Spring JdbcTemplate实现学生信息的新增、修改、删除、查询单个、查询所有功能,并实现MySQL数据库的操作。
59 0
|
11月前
|
Java Maven Spring
案例11 基于Maven构建实现学生新增案例
基于Maven快速构建,实现学生新增。
66 0
|
11月前
|
Java Spring
Spring Boot入门 (十九) 之 CURD实验 员工列表的公共页抽取 以及公共代码的抽取
Spring Boot入门 (十九) 之 CURD实验 员工列表的公共页抽取 以及公共代码的抽取