【09】SpringBoot4 MyBatisPlus 增删改查(CRUD)

SpringBoot4 MyBatisPlus 增删改查(CRUD)

前言

在此博文《SpringBoot4 MyBatisPlus 代码自动生成》的基础上,进行迭代功能开发。

pom.xml 文件更新

新增 测试坐标

xml 复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>

增删改查(CRUD)测试类

java 复制代码
package com.junjiu.mybatisplus.pro.test;

import com.junjiu.mybatisplus.pro.entity.TbClient;
import com.junjiu.mybatisplus.pro.service.ITbClientService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 测试增删改查功能
 */
@SpringBootTest
public class CrudTest {

    @Autowired
    ITbClientService clientService;

    /**
     * 添加数据
     */
    @Test
    public void testInsert() {
        TbClient client = new TbClient()
                .setClientId(100001L)
                .setUserNo("zhangsan")
                .setUserPassword("123456")
                .setNickName("张三")
                .setRealName("张三")
                .setInfo("""
                {
                  "age": 25,
                  "gender": "male",
                  "city": "上海"
                }
                """)
                .setCreatedTime(LocalDateTime.now())
                .setUpatedTime(LocalDateTime.now());

        clientService.save(client);
    }

    /**
     * 批量添加
     */
    @Test
    public void testInsertBatch() {

        List<TbClient> clients = List.of(
                new TbClient()
                        .setClientId(100001L)
                        .setUserNo("zhangsan")
                        .setUserPassword("123456")
                        .setNickName("张三")
                        .setRealName("张三")
                        .setInfo("""
                        {
                          "age": 25,
                          "gender": "male",
                          "city": "上海"
                        }
                        """)
                        .setCreatedTime(LocalDateTime.now())
                        .setUpatedTime(LocalDateTime.now()),

                new TbClient()
                        .setClientId(100002L)
                        .setUserNo("lisi")
                        .setUserPassword("123456")
                        .setNickName("李四")
                        .setRealName("李四")
                        .setInfo("""
                        {
                          "age": 28,
                          "gender": "male",
                          "city": "北京"
                        }
                        """)
                        .setCreatedTime(LocalDateTime.now())
                        .setUpatedTime(LocalDateTime.now()),

                new TbClient()
                        .setClientId(100003L)
                        .setUserNo("wangwu")
                        .setUserPassword("123456")
                        .setNickName("王五")
                        .setRealName("王五")
                        .setInfo("""
                        {
                          "age": 30,
                          "gender": "male",
                          "city": "深圳"
                        }
                        """)
                        .setCreatedTime(LocalDateTime.now())
                        .setUpatedTime(LocalDateTime.now()),

                new TbClient()
                        .setClientId(100004L)
                        .setUserNo("xiaohong")
                        .setUserPassword("123456")
                        .setNickName("小红")
                        .setRealName("李红")
                        .setInfo("""
                        {
                          "age": 23,
                          "gender": "female",
                          "city": "杭州"
                        }
                        """)
                        .setCreatedTime(LocalDateTime.now())
                        .setUpatedTime(LocalDateTime.now()),

                new TbClient()
                        .setClientId(100005L)
                        .setUserNo("ai_user")
                        .setUserPassword("123456")
                        .setNickName("AI用户")
                        .setRealName("陈明")
                        .setInfo("""
                        {
                          "age": 27,
                          "gender": "male",
                          "city": "上海",
                          "tags": ["Java", "Spring Boot", "AI"],
                          "vipLevel": 3
                        }
                        """)
                        .setCreatedTime(LocalDateTime.now())
                        .setUpatedTime(LocalDateTime.now())
        );

        clientService.saveBatch(clients);

    }

    /**
     * 修改数据.
     */
    @Test
    public void testUpdate() {
        TbClient client = new TbClient()
                .setClientId(100001L)
                .setUserNo("junjiu")
                .setUserPassword("123456")
                .setNickName("君九@DBA")
                .setRealName("君九")
                .setInfo("""
                {
                  "age": 25,
                  "gender": "male",
                  "city": "上海"
                }
                """)
                .setCreatedTime(LocalDateTime.now())
                .setUpatedTime(LocalDateTime.now());

        // clientService.save(client);
        clientService.updateById(client);
    }

    /**
     * 删除数据.
     */
    @Test
    public void testDelete() {

        clientService.removeById(100001L);
    }

}
相关推荐
若亦_5 小时前
Java中关于this的三种用法
java·开发语言·intellij-idea
山甫aa5 小时前
锁一篇搞定:乐观锁、悲观锁、CAS、数据库锁与分布式锁【从零开始的 Web 后端学习】
java·数据库·分布式·后端·学习·web
软件技术NINI5 小时前
基于SpringBoot和Vue的博物馆预约平台管理系统的设计与实现
java·毕业设计·毕设
独泪了无痕14 小时前
探索Pinyin4j-Java中的拼音转换利器
java·后端
道尔柯南15 小时前
C++ string 类详解:从常用接口到深拷贝,彻底掌握字符串处理
android·java·c++
kingx316 小时前
Bugku 3122 谷歌小恐龙题解:纯离线逆向 Vault 的 AES-GCM 加密资源(附 Python 解密器)
java·逆向·ctf·bugku·aes-gcm
DevOpenClub19 小时前
职教高考控制线 API:招生类别枚举、筛选与空分数含义
java·数据库·高考
露天赏雪20 小时前
第3篇:Sentinel熔断降级实战:大模型接口抖动时的服务兜底方案
java·开发语言·人工智能·spring boot·spring·servlet·sentinel
天天被压力20 小时前
【A股分钟级高频数据完全手册 #06】北交所分钟级数据接口:京市股票Pro版最新分时
java·人工智能·python
天天被压力20 小时前
【A股分钟级高频数据完全手册 #05】指数历史分钟数据接口:Pro版沪深指数分时回放
java·人工智能·python