MyBatis-Plus部分方法封装

2022-01-29 14:47:39 875

在此仅记录一种思路

public interface SuperMapper<T> extends BaseMapper<T> {

    default List<T> idNotInList(List<?> idList) {
        return selectList(new QueryWrapper<T>().notIn("id", idList));
    }
}
public interface UserMapper extends SupperMapper<User> {

}

service基类

public class SupperServiceImpl<M extends SupperMapper<T>, T> extends ServiceImpl<M, T> {


}
public interface UserService extends IService<User> {
    List<User> idNotInList(List<Integer> idList);
}
@Service
public class UserServiceImpl extends SupperServiceImpl<UserMapper, User> implements UserService {


    @Override
    public List<User> idNotInList(List<Integer> idList) {
        //在SupperMapper中定义的默认方法, 可以在此直接使用
        return baseMapper.idNotInList(idList);
    }
}


Java操作Redis的常见误区

不能使用 keys * 命令不能在set中存放大量数据
2021-01-11

Java 单例模式

双重校验懒汉式单例public class Singleton { //1. 避免jvm指令重排 由于JVM具有指令重排的特性,执行顺序有可能变成 1-3-2。指令重排在单线程下不会出现问题,但是在多线程下会导致一个线程获得一个未初始化的实例。例如:线程T1执行了1和3,此时T2调用 ge
2021-01-06

Java 工厂模式

public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::draw() method."); } }
2021-01-02

Java 模板模式

public abstract class Template { public final void templ() { System.out.println("开始"); code(); System.out.println("结束"); } public abstract v
2021-01-02

Java 装饰者模式

接口Printerpublic interface Printer { void start(); void print(); void stop(); } 实现类 HPPrinter public class HPPrinter implements Printer {
2021-01-02
Java Proxy.newProxyInstance动态代理

Java Proxy.newProxyInstance动态代理

定义接口public interface Student { void buy(); String talk(); } 实现类public class Lisi implements Student { @Override public void buy() { System.ou
2021-01-02

Java 解析windows 快捷方式 lnk文件

转载自 https://www.oschina.net/code/snippet_12_274import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; public c
2020-12-10

Spring Boot项目中使用RedisTemplate.delete() 删除指定key失败的解决办法

https://blog.csdn.net/hello_world_qwp/article/details/85763286上面这篇博客扯一大堆, 居然还分析源码实际只是自定义了key的序列化方式导致最终操作redis的时候序列化的key与预期的key不一致而已, 自然就删不掉redis中的数据了
2020-11-26

jpa方法参数必须加上@Param

void deleteByKl(String kl);线上可能报错原因可能是编译时没有加-parameters这个参数, 编译后丢失了参数名称, 使得反射拿不到对应参数需要加上注解void deleteByKl(@Param("kl") String kl);同理public ResultVO de
2020-09-28

日志规范

日志中要打印参数错误示例 @GetMapping("/share_coupon") public ActionResult shareCoupon(Long couponSn) { //validate code try { retur
2020-09-17

Java中的Date和时区转换

1.Date中保存的是什么在java中,只要我们执行 Date date = new Date(); 就可以得到当前时间。如:Date date = new Date(); System.out.println(date); 输出结果是: Thu Aug 24 10:15:29 CST 2017 也
2020-03-28
基于自定义注解手写权限控制

基于自定义注解手写权限控制

方法一: AOP 方法二: 拦截器项目结构项目依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-w
2020-03-28

如何在Java中替换多个if语句

1. 概述选择结构是任何编程语言的重要组成部分。但是我们编写了大量嵌套的if语句,这使得我们的代码更加复杂和难以维护。 在本教程中,我们将介绍替换嵌套if语句的各种方法。 让我们探索如何简化代码的不同选项。2. 案例研究我们经常遇到涉及很多条件的业务逻辑,并且每个都需要不同的处理。为了演示,我们以C
2020-03-28
Java中方法的参数传递机制

Java中方法的参数传递机制

来看一段代码 public class Man { private String name; private Integer age; public String getName() { return name; } publi
2020-03-28

各平台时间格式

javayyyy-MM-dd HH:mm:ss2021-01-18 13:05:25mysqlDATE_FORMAT(time,'%Y-%m-%d %H:%i:%s')2021-01-18 13:05:25sql serverSELECT CONVERT(varchar(100), GETDATE(
2021-01-18

Java 获取当前方法的被调用信息

Thread.currentThread().getStackTrace();
2021-01-28

异步场景下的ThreadLocal解决方案

引入依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>transmittable-thread-local</artifactId> <version>2.12.1</version> </dependency
2021-04-15

Redis缓存更新修改原有值但是不修改失效时间

第一种方式redisTemplate.opsForValue().set("key", "value", 0);第二种方式redisTemplate.opsForValue().increment("key", 1);
2021-04-17

Visual Studio 2019 文件编码问题

Visual Studio 对 utf-8 的支持相当差.cpp/.h 文件先调出高级保存选项菜单, 具体百度设置文件字符编码为utf-8还不够, 还要在项目 => 属性 => C/C++ => 所有选项 => 附加选项 中 设置 /utf-8.rc 文件默认编码gbk, 加了特殊字符无法显示然后改
2021-07-18

屏蔽Postman自动更新

hosts文件添加127.0.0.1 dl.pstmn.io 127.0.0.1 sentry-app.postmanlabs.com
2021-12-23

Nginx相关命令

查看Nginx的版本号:nginx -V 启动Nginx:start nginx 或者 nginx 快速停止或关闭Nginx:nginx -s stop 正常停止或关闭Nginx:nginx -s quit 配置文件修改重装载命令:nginx -s reload 查看windows
2021-12-24
IDEA方法注释模板

IDEA方法注释模板

设置tab键触发注释模板内容** * <p>$methodName$</p> *$param$ $return$ * @Title $methodName$ * @author kyaa * @date $date$ $time$ */ 变量填充param自己脚本模拟def result
2022-01-06

MyBatis-Plus部分方法封装

在此仅记录一种思路public interface SuperMapper<T> extends BaseMapper<T> { default List<T> idNotInList(List<?> idList) { return selectList(new Quer
2022-01-29