扩展mybatis-plus,保留逻辑删、逻辑查的前提下,扩展硬删除、硬查询

引入相关依赖

<!-- 提示:1. common-mybatis-plus:2100.8.8 中只有4个类文件,是对硬删除、硬查询的扩展支持,如果你不想引入依赖的话,你可以把这四个文件复制到自己的项目中即可2. common-mybatis-plus:2100.8.8 对应mybatis-plus版本3.5.4.1,扩展功能有:硬删除、硬查询3. common-mybatis-plus:2100.8.7 对应mybatis-plus版本3.5.2,扩展功能有:硬删除
-->
<dependency><groupId>com.idea-aedi</groupId><artifactId>common-mybatis-plus</artifactId><version>2100.8.8</version><exclusions><!-- 提示:common-spring是一些其它工具类,不想要的话这里直接exclusion即可 --><exclusion><groupId>com.idea-aedi</groupId><artifactId>common-spring</artifactId></exclusion></exclusions>
</dependency><!-- mybatis-plus -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.4.1</version>
</dependency>

启用增强功能

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Import;/*** 导出sql注入器*/
// 或:@ComponentScan(basePackages = "com.ideaaedi.commonmp.injector")
@Import(com.ideaaedi.commonmp.injector.MybatisPlusSqlInjector.class)
@SpringBootApplication
public class StartUp {public static void main(String[] args) {SpringApplication.run(StartUp.class, args);}
}

使用示例

  • 编写mapper
    import com.ideaaedi.commonmp.mapper.BaseMapperExt;
    import com.ideaaedi.demo.entity.UserPO;
    import org.apache.ibatis.annotations.Mapper;@Mapper
    public interface UserMapper extends BaseMapperExt<UserPO> {
    }
    
  • 编写service
    import com.ideaaedi.commonmp.service.IServiceExt;
    import com.ideaaedi.demo.entity.UserPO;public interface UserService extends IServiceExt<UserPO> {
    }
    
  • 编写service-impl
    import com.ideaaedi.commonmp.service.ServiceImplExt;
    import com.ideaaedi.demo.entity.UserPO;
    import com.ideaaedi.demo.mapper.UserMapper;
    import com.ideaaedi.demo.service.UserService;
    import org.springframework.stereotype.Service;@Service
    public class UserServiceImpl extends ServiceImplExt<UserMapper, UserPO> implements UserService {
    }
    
  • 调用硬删除、硬查询方法即可
    在这里插入图片描述

相关资料

  • demo代码(force-select-delete分支)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/579976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

青少年CTF-qsnctf-Web-include01include02(多种方法-知识点较多-建议收藏!)

PHP常见伪协议 php://filter是PHP中独有的一种协议&#xff0c;它是一种过滤器&#xff0c;可以作为一个中间流来过滤其他的数据流。通常使用该协议来读取或者写入部分数据&#xff0c;且在读取和写入之前对数据进行一些过滤&#xff0c;例如base64编码处理&#xff0c;rot13处…

Unity 渲染顺序受哪些影响(相机depth、SortingLayer、Render Queue、透明)

目录 相机深度&#xff08;Camera Depth&#xff09; Clear Flags 多相机渲染不同部分 SortingLayer 先后顺序 Render Queue Render Queue的作用 Render Queue的分类 GeometryLast&#xff08;值为2500&#xff09; 渲染顺序总结 相机深度&#xff08;Camera Depth&am…

MongoDB ReplicaSet 部署

文章目录 前言1. 环境准备2. 生成密钥3. 配置参数4. 创建 ReplicaSet5. 副本集维护5.1 新增成员5.2 移除节点5.4 主节点降级5.5 阻止选举5.6 允许副本节点读5.7 延迟观测 6. 连接副本集 后记 前言 本篇文章介绍 MongoDB ReplicaSet 如何搭建&#xff0c;及常用的维护方法。 1…

求简单表达式的值

题目&#xff1a;在键盘输入类似(56-20)/(42)这样的表达式输出结果 此题分为两部分&#xff08;1&#xff09;将表达式转换成后缀表达式&#xff08;2&#xff09;计算后缀表达式的值 需要注意的是本题要定义两个不同的栈 一个数据类型是字符&#xff0c;一个数据类型是doubl…

Spring Boot:Spring Boot 入门、yaml 配置文件给属性赋值、自动装配原理详解

文章目录 Spring Boot - 01一、概述二、第一个 Spring Boot 程序补充知识 三、配置文件1. yaml 配置文件2. 使用 yaml 配置文件给属性赋值3. 松散绑定以及数据校验4. 配置文件的位置以及多环境配置 四、Spring Boot 分析1. pom.xml2. 启动器3. 主程序4. 自动装配原理5. 主启动类…

数栈UI5.0设计实战|B端表单这样设计,不仅美观还提效

表单是B端产品中最常见的组件之一&#xff0c;主要⽤于数据收集、校验和提交。比如登陆流程的账号密码填写&#xff0c;注册流程的邮箱、用户名等信息填写&#xff0c;都是表单应用的常见案例&#xff0c;在数栈产品中也是出现频率⾮常⾼的组件。 尽管表单应用十分普遍&#x…

腾讯云4核8G服务器轻量和CVM标准型S5对比

腾讯云4核8G服务器优惠价格表&#xff0c;云服务器CVM标准型S5实例4核8G配置价格15个月1437.3元&#xff0c;5年6490.44元&#xff0c;轻量应用服务器4核8G12M带宽一年446元、529元15个月&#xff0c;阿腾云atengyun.com分享腾讯云4核8G服务器详细配置、优惠价格及限制条件&…

网络通信协议

WebSocket通信 WebSocket是一种基于TCP的网络通信协议&#xff0c;提供了浏览器和服务器之间的全双工通信&#xff08;full-duplex&#xff09;能力。在WebSocket API中&#xff0c;浏览器和服务器只需要完成一次握手&#xff0c;两者之间就直接可以创建持久性的连接&#xff…

我们可以创建一个包含可变对象的不可变对象吗?

不可变对象是指一旦创建其状态就无法更改的对象。任何修改都会产生一个新对象&#xff0c;例如String、Integer和其他包装类。 请参阅在 Java 中创建不可变类的分步指南http://t.csdnimg.cn/8muWz。我们可以创建一个包含可变对象的不可变对象吗&#xff1f; 是的&…

虚幻学习笔记16—C++和3DUI(二)

一、前言 上一篇虚幻学习笔记15—C和UI&#xff08;一&#xff09;中介绍了通过C代码创建2D的ui&#xff0c;本章主要讲解怎么用C代码创建3D的UI&#xff0c;在虚幻学习笔记3—UI跟随弹窗这章中讲解了怎样用蓝图创建一个3D的UI&#xff0c;并且和其交互。 本系列使用的虚幻5.2.…

【Tensor张量】AI模型的信息流通货币

官方解释https://www.tensorflow.org/guide/tensor?hl=zh-cn 1.Tensor的概念理解 如果大模型是一个会运行的城市工厂,那么Tensor就是 运输车! 如果大模型是计算机,那么Tensor就是硬盘。 负责深度学习数据的运输和存储!把数据送给AI模型进行训练,AI模型推理后的数据也…

操作系统“文艺复兴”,云数智融合涌现“美第奇效应”

操作系统作为信息技术中的基础软件&#xff0c;是现代计算机的“灵魂”。随着大模型AI推动云计算、大数据、人工智能、物联网和5G等新一代数字技术的飞速融合&#xff0c;现代计算机体系结构和软件架构面临着重大创新机遇期。图灵奖获得者John Hennessy和David Patterson早在20…

探索未来的方向

运维工程师的出路到底在哪里&#xff1f; 随着技术的不断发展和进步&#xff0c;运维行业也在不断演变。对于许多运维人员来说&#xff0c;他们可能会感到困惑&#xff0c;不知道自己的出路在哪里。本文将探讨运维人员未来的发展方向和机会。 首先&#xff0c;对于那些对技术有…

接口测试学习笔记

文章目录 认识urlhttp协议接口规范Postman实现接口测试设计接口测试用例使用软件发送请求并查看响应结果Postman 自动关联Postman如何提交multipart/form-data请求数据Postman如何提交查询参数Postman 如何批量执行用例单接口测试Postman 断言Postman参数化 接口测试自动化requ…

python常用函数汇总

python常用函数汇总 对准蓝字按下左键可以跳转哦 类型函数数值相关函数abs() divmod() max() min() pow() round() sum()类型转换函数ascii() bin() hex() oct() bool() bytearray() bytes() chr() complex() float() int() 迭代和循环函数iter() next() e…

家有一宝,快乐翻倍,最新最全面基于AdGuard Home 自建 DNS 防污染、去广告教程、安装部署详解、优化增强设置详解

家有一宝,快乐翻倍,最新最全面基于AdGuard Home 自建 DNS 防污染、去广告教程、安装部署详解、优化增强设置详解。支持各个客户端,全平台覆盖。 AdGuard Home 部署的方式有很多种,一般二进制文件部署和直接编译到 OpenWrt 系统中是大家所常用的。而博主个人倾向于使用 Dock…

Qt/C++控件设计器/属性栏/组态/可导入导出/中文属性/串口网络/拖曳开发

一、功能特点 自动加载插件文件中的所有控件生成列表&#xff0c;默认自带的控件超过120个。拖曳到画布自动生成对应的控件&#xff0c;所见即所得。右侧中文属性栏&#xff0c;改变对应的属性立即应用到对应选中控件&#xff0c;直观简洁&#xff0c;非常适合小白使用。独创属…

CTF特训(一):ctfshow-RCE挑战

CTF特训(一)&#xff1a;ctfshow-RCE挑战 FLAG&#xff1a;可后来&#xff0c;除了梦以外的地方&#xff0c;我再也没有见过你 专研方向: 代码审计&#xff0c;PHP 每日emo&#xff1a;其实挺迷茫的&#xff0c;不知道该干什么,(骗你的) RCE挑战1 <?phperror_reporting(0)…

数据密钥管理有哪些常见技术

数据密钥管理涉及到许多复杂而重要的技术&#xff0c;以下是一些常见的数据密钥管理技术&#xff1a; 密钥生成技术&#xff1a;这是数据密钥管理的第一步&#xff0c;需要生成安全、随机且唯一的密钥。常见的密钥生成算法包括RSA、ECC(椭圆曲线密码学)等。这些算法能够生成长度…

EternalBlue【永恒之蓝】漏洞详解(复现、演示、远程、后门、入侵、防御)内容丰富-深入剖析漏洞原理-漏洞成因-以及报错解决方法-值得收藏!

漏洞背景&#xff1a; 1.何为永恒之蓝&#xff1f; 永恒之蓝&#xff08;Eternal Blue&#xff09;爆发于2017年4月14日晚&#xff0c;是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限&#xff0c;以此来控制被入侵的计算机。甚至于2017年5月12日&#xff0c; 不法分子…