摘要:利用searchAfter分页方式代替From-Size查询或Scroll滚动查询,解决From-Size查询存在的深度翻页问题与Scroll滚动查询存在数据量大响应慢的问题。由于searchAfter分页需要保证排序聚合唯一,当使用_id 字段进行排序聚合时,可能会导致fielddata内存使用指
阅读全文
摘要:一、对象转换方式: 1、SET与GET赋值方式: SET与GET赋值方式是最基本的一种对象转换方式。通过手动调用源对象的 getter 方法,获取源对象的属性值,然后通过目标对象的 setter方法将值设置到目标对象中。 public class UserDTO { private String n
阅读全文
摘要:Jasypt(Java Simplified Encryption)是一个轻量级的Java加密库,旨在简化加密操作,使Java开发者能够在应用程序中轻松地实现数据加密和解密。它支持多种常见的加密算法,并提供了易于使用的 API 和加密容器,帮助开发者保护敏感信息(如密码、密钥、API 密钥、数据库密
阅读全文
摘要:try-with-resources 是Java7引入的一个语法,旨在简化资源的管理,自动关闭实现了`AutoCloseable`或`Closeable`接口的资源对象,如 InputStream、OutputStream、FileReader、BufferedReader等。 在传统的try-ca
阅读全文
摘要:一、不存在事务管理,发生异常不会回滚 二、@Transactional的事务传播级别: 事务传播级别 详解 REQUIRED 加入事务,默认值 SUPPORTS 存在就加入,不存在,非事务执行 MANDATORY 存在就加入,不存在抛异常 REQUIRES_NEW 重新新建事务,如果当前存在事务,则
阅读全文
摘要:MySQL的多表连查(即多表连接查询)对于数据库管理员、开发人员以及数据分析师来说都是非常重要的。对此,笔者专门写一文进行详细讲解,以便个人学习: 首先建立两张表用于数据验证: 1、笛卡尔积: 笛卡儿积(Cartesian product)是指在两个集合A和B之间的所有可能的有序对的集合。具体来说,
阅读全文
摘要:转载自 一、String工具类: public class StringUtils { private static final char DELIM_START = '{'; private static final String DELIM_STR = "{}"; private static
阅读全文
摘要:一、根据逗号拆分行数据: 1、数据表: 2、数据拆分: SELECT de.uuid, de.`name`, SUBSTRING_INDEX( SUBSTRING_INDEX( de.`code`, ',', ht.help_topic_id + 1 ), ',', - 1 ) AS newCode
阅读全文
摘要:MyBatis判断一个字段是否包含(in)在String字符串或者List中
阅读全文
摘要:一、符号转义详解: 1、转义字符方式: 含义原符号转义字符 小于 < < 小于等于 <= <= 大于 > > 大于等于 >= >= 逻辑与(和) & & 单引号 ‘ ' 双引号 “ " # 查询创建时间是小于2023年的用户 SELECT * FR
阅读全文
摘要:一、需求: SQL方式实现多级标签,类似于: 二、一级标签实体类声明: 三、二级标签实体类声明: 四、mybatis标签映射: <resultMap>中的 <collection>来实现一对多映射关系: <resultMap id="BaseResultMap" type="com.xxx.mode
阅读全文
摘要:实体类对象相互比较-JSON方式: 在实际开发中,我们经常需要比较同一个自定义类型的两个不同对象的属性值是否相等,采用JSON方式比较可快速有效实现相关需求。JSONobject是FastJson提供的对象,在API中是用一个私有的常量map进行封装的,实际就是一个map,只不过 FastJson对
阅读全文
摘要:Mysql5.7版本以后提供一个原生的Json类型,Json值将不再以字符串的形式存储,而是采用一种允许快速读取文本元素(document elements)的内部二进制(internal binary)格式。 一、Mysql操作Json字段: 参考 1、存储方式: 注:代码以String类型声明
阅读全文
摘要:转载自 一、报错信息: Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restart
阅读全文
摘要:转载自 在项目中利用Mybatis做持久化框架,XXXMapper.xml中insert语句做插入时,偶然会遇到一些报错或者说是问题,如下: 一、报错日志: nested exception is org.apache.ibatis.type.TypeException: Could not set
阅读全文
摘要:转载自 1、多并发案例: 一个车站有三个窗口同时卖30张票,每个窗口都有40个人在排队买票,在多线程情况下,不加锁,线程不安全,导致卖票不准确 package com.example.Lock; /** * 线程就是一个单独的资源类,没有任何附属的操作 */ public class demo1 {
阅读全文
摘要:一、插入与更新操作: MySQL中,采用ON DUPLICATE KEY UPDATE语句对不存在的数据进行INSERT插入操作,对已存在的数据进行UPDATE更新操作; 总结: 1、ON DUPLICATE KEY UPDATE语句根据主键或唯一键来判断当前插入是否已存在。 2、记录已存在时,只会
阅读全文
摘要:一、Bigdecimal.equals()详解: Bigdecimal的equals方法不仅仅比较值的大小是否相等,首先比较的是scale(scale是bigdecimal的保留小数点位数),也就是说,不但值得大小要相等,保留位数也要相等,equals才能返回true。 二、采用compareTo(
阅读全文
摘要:转载自 第一步、确认Git公钥/密钥是否生成: 1、 首先查看本地是否生成git密钥,一般在C盘home目录下:【C:你自己的home目录\.ssh】 第二步:添加Git密钥: 右键->Git base here(前提是已经安装GIt), 具体如何安装Git, 请自行安装 按顺序执行命令 1、git
阅读全文
摘要:一、Swagger报错: 1、报错类型: TypeError: Failed to execute ‘fetch‘ on ‘Window‘: Request with GET/HEAD method cannot have body 2、解决方案: 请求方式错误:请求参数使用了@RequestBod
阅读全文