自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 使用spring注解实现策略模式,减少大量if判断

在Context类的构造函数中,通过@Autowired和Map类型的参数将所有实现策略接口的Bean自动注入。在contextInterface方法中,根据传递的参数获取对应的策略对象,并执行其execute方法。这样,在使用时就可以直接调用Context类的contextInterface方法,并传入实现Strategy接口的Bean名称作为参数。在Spring配置文件中,通过context:component-scan指定扫描Context和各个实现策略接口的类所在的包。定义多个实现策略接口的类。

2023-05-16 11:13:11 329

转载 【Mybatis】获取刚插入数据库的Id

在xml的insert标签加入useGeneratedKeys=“true” keyProperty="id"即可。注意可能导致useGeneratedKeys=“true” keyProperty=“id” id回显失效的场景。不要使用@Param和xx.xx。插入语句上加入下面这个标签也可以。数据库id列没有设置自增。

2023-03-23 10:46:50 555

转载 【Mybatis】使用批处理优化百万数据量插入

这是因为使用 MyBatis 原生批量插入拼接的插入 SQL 大小是 4.56M,而默认情况下 MySQL 可以执行的最大 SQL 为 4M,那么在程序执行时就会报错了。使用MyBatis 原生批量插入时,当传入的LIst数据量过大就会出现以下错误。第二部:改造我们的 MyBatis 批量插入代码。将LIst分成多份循环插入,也就是分片批量插入。一次插入32w算量数据从90分钟优化成18秒。读取三个不同大小的模型算量测试。27152 1.7秒。322830 18秒。

2023-03-23 10:18:17 886

原创 MySQL 获取日期函数

MySQL 获取日期函数

2022-08-24 16:20:03 1145

转载 面向对象分析与设计的底层逻辑

面向对象分析与设计的底层逻辑

2022-08-23 17:04:07 379

原创 【苹果Mac M1芯片,idea在debug模式下一直很慢 The application is running】

苹果M1芯片,idea在debug模式下一直很慢 the application is running

2022-08-11 23:44:20 2396 8

原创 【MyBatis】开发实战

【MyBatis】开发实战

2022-07-09 19:30:11 239

原创 提高生产力,最全 MyBatis Plus 讲解!

提高生产力,最全 MyBatis Plus 讲解!

2022-07-09 01:33:12 368

原创 Junit单元测试,@Transactional注解引起的事务回滚问题

Junit单元测试,@Transactional注解引起的事务回滚问题

2022-07-08 22:13:14 992

原创 Java8 - LocalDateTime 自定义日期格式化工具类

LocalDateTime 自定义日期格式化工具类

2022-07-07 10:37:01 586

原创 Java AOP实现接口请求日志打印

Java AOP实现接口请求日志打印

2022-06-07 22:14:00 424

原创 Lombok不生效,提示java: 找不到符号

问题在使用IntelliJ IDEA 2020.3 EAP (Ultimate Edition)时提示Lombok不生效java: You aren’t using a compiler supported by lombok, so lombok will not work and has been disabled.方法一打开settings–>Build,Execution…–>Compiler在Shared build process VM opyions:加上该配置-Djp

2022-03-30 15:52:23 2291 1

转载 Java8 合并 List<Map>,为一个大Map

-----数据[{gailun=刘备},{zhaoxin=关羽},{ruiwen=张飞}] -----目标{gailun=刘备,zhaoxin=关羽,ruiwen=张飞}第一种List<Map<String,Object>> lists=new ArrayList<>();Map<String, Object> merged = new HashMap<>();lists.forEach(merged::putAll);第二种

2022-03-13 19:19:34 3218

原创 FastJson 常用 序列化API

JSON:(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。目前,Json处于数据交换语言的王者地位。Json数组格式Json的数据本身是数组,中括号包裹。数组的元素之间用“,”分开,数组元素的数

2022-03-13 01:07:56 421

原创 Java8 用stream将 对象List 合并求和

在需求开发中,我们需要对一个List中的对象进行唯一值属性去重,属性求和,对象假设为User,有name、value两个属性,其中name表示唯一值,需要value进行求和,并最后保持一份对象。例如:(“A”, 1),(“A”, 2),(“B”, 5), 求和并去重的话,就是(“A”, 3),(“B”, 5)。public void Test(){ List<Users> list1 = new ArrayList<>(); List<Use

2022-03-13 00:30:13 2655

原创 IDEA Maven项目 pom.xml 找不到 Dependency 依赖

如果你的pom.xml中使用了dependencyManagement管理依赖并且添加了你本地仓库中不存在的依赖可能会提示但是你去源又看得到其是存在的这时你只需要把最外围的标签 dependencyManagement 暂时去掉<dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud&l

2022-03-03 14:57:31 2766

原创 Spring自带工具类

断言断言是一个逻辑判断,用于检查不应该发生的情况Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查// 要求参数 object 必须为非空(Not Null),否则抛出异常,不予放行// 参数 message 参数用于定制异常信息。void notNull(Object object, String message)// 要求参数必须空(Null),否则抛出

2022-02-21 09:04:23 87

转载 Hutoo --- 日期时间工具-DateUtil

使用前安装Hutoo工具MAVEN依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.21</version></dependency>转换Date、long、Calendar之间的相互转换//当前时间Date date = DateUtil

2022-02-20 17:09:10 2922

原创 mybatis使用collection查询集合属性规则

接上篇mybatis使用associaton进行分步查询相关的类还是上篇中的类。查询部门的时候将部门对应的所有员工信息也查询出来DepartmentMapper.xml<!--嵌套结果集的方式,使用collection标签定义关联的集合类型的属性封装规则 --> <resultMap type="com.mybatis.bean.Department" id="MyDept"> <id column="did" property="id"/> <

2022-02-20 14:03:02 2054

原创 mybatis使用associaton进行分步查询

Employee类public class Employee { private Integer id; private String lastName; private String email; private String gender; private Department dept; // 省略setter、getter、toString方法}Department类public class Department { private Integer id; p

2022-02-20 13:53:38 403

原创 Spring中的@Transactional(rollbackFor = Exception.class)属性详解

@Transactional(rollbackFor = Exception.class),这个注解的用法异常如下图所示,我们都知道Exception分为运行时异常RuntimeException和非运行时异常error是一定会回滚的如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。如果不想终止,则必须捕获所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理

2022-02-19 13:50:53 831

原创 【list集合为空或为null的区别】

list集合为空或为null的区别判断的是list这个集合的问题,当前需要判断list内值的问题简述引用判断空集合null判断建议判断的是list这个集合的问题,当前需要判断list内值的问题简述判断一个list集合是否为空,我们的惯性思维是判断list是否等于null即可,但是在Java中,list集合为空还是为null,这是两码事。引用举个形象的例子,我有一个空着的水杯(list),而你没有,那你是null,我的size为0。你想装水就需要自己去买个水杯(new ArrayList();),但

2022-02-19 11:22:35 862

原创 linux环境安装 openssh-server,及使用密码登录

**Ubuntu : 解决更新时出现 Unable to locate package update**尤其是在Ubuntu 安装openssh-server 时,会出现Unable to locate package update解决方法:先更新apt-get#sudo apt-get update执行完后,问题就解决了。继续更新:#sudo apt-get upgrade...

2019-12-06 20:22:04 2943

原创 c语言_结构体封装寄存器的用法,以及typedef、 volatile、static、 inline关键字用法

#define ELFIN_TIMER_BASE 0xE2500000 //定义寄存器基地址typedef unsigned char uchar;typedef volatile unsigned long vu_long;typedef volatile unsigned short vu_short;typedef volatile unsigned char vu_char;...

2019-11-30 19:46:45 2193 3

原创 C语言_二级指针用法

typedef int (init_fnc_t) (void); //定义了一个函数init_fnc_t **init_fnc_ptr; //定义了一个指向init_fnc_t类型的二重函数指针//二重指针的作用有2个,一个是用来指向指针数组,一个是用来指向一重指针init_fnc_t *init_sequence[] = { cpu_init, #if defined(CONFI...

2019-11-29 21:50:05 344

原创 C语言_结构体封装全局变量用法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-11-29 21:26:28 2983

转载 ARM体系结构与编程模型(图文并茂)

第一 ARM处理器简介及RISC特点ARM处理器简介ARM(Advanced RISC Machines)是一个32位RISC(精简指令集)处理器架构,ARM处理器则是ARM架构下的微处理器。ARM处理器广泛的使用在许多嵌入式系统。ARM处理器的特点有指令长度固定,执行效率高,低成本等。RISC设计主要特点1、指令集——RISC减少了指令集的种类,通常一个周期一条指令,采用固定长度的指令...

2019-11-06 19:19:50 2751

原创 vi编译器的使用

vi编译器的使用实用命令插入模式退出删除和修改行定位文本查找替换set指令实用命令插入模式功能键功能a光标位置右边插入文字i光标位置当面处插入文字o(小写字母)光标位置下方开启新行O(大写字母)光标位置上方开启新行I(大写字母)光标所在行首插入文字A(大写字母)光标所在行尾插入文字退出功能键功能ZZ (...

2019-04-30 15:22:20 805

原创 Linux介绍和基本操作

Linux介绍和基本操作文件系统Linux目录结构文件分类文件权限常用命令命令使用方法文件管理命令文件系统Linux目录结构 /: 根目录 /bin: /usr/bin: 可执行二进制文件的目录 /lib: /usr/lib: /usr/local/lib: 系统使用的函数库有的目录 /home: 系统默认的用户家目录 /usr/include: 头文件所在目录文件分类第1个字...

2019-04-29 19:31:42 11664

转载 博客编辑范本

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入List i...

2019-04-27 20:44:36 155

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除