- 博客(16)
- 收藏
- 关注
原创 exists和in的选择优化
exist 外表一定循环完,子表多少无所谓,不稳定。决定因素是外表的大小。========>小表带大表。in 外表一定循环完,次数取决于子表的个数。决定因素子表的大小。======>大表带小表。操作的次数主要取决于外表的大小。在优化查询时,如果子查询可以很快地找到匹配项,那么。操作的次数取决于子查询的输出大小,而。
2024-07-02 16:31:49
135
原创 pojo对象概念
dto:数据库po对象在前端只需要展示的部分字段的对象。dao:对数据库操作方法的对象。POJO:下列统称为pojo。vo:前端展示的对象。
2024-07-01 17:31:14
119
原创 order by 利用索引有序性,避免出现 file_sort 的情况,提高查询性能
优化索引排序就两种,一种利用索引有序性的,不用额外排序,直接查出就是有序的;另一种就需要额外排序的。这需要理解组合索引的有序性来进行Sql的优化,并不是格式一定的,可以灵活变化,比如组合索引的三个字段都来使用作为过滤条件呢,什么条件会不用额外排序呢?更多的条件呢?阿里巴巴开发手册的着重点是想要我们利用索引的有序性,来完成我们的排序目的,而不需要额外的排序操作。额外的排序操作有些糟糕的情况是很费性能的,这部分可以了解order by的单路排序和双路排序。
2023-08-23 16:08:00
211
原创 异常操作类
UnsupportedOperationException是Java中的一个标准异常类,用于指示不支持的操作。在这种情况下,如果条件不满足,表示该操作不被支持,可以抛出UnsupportedOperationException来表示不支持的操作。在这种情况下,如果枚举类型不符合预期条件,可以抛出IllegalArgumentException来表示参数的非法值。在查询数据库时,如果没有匹配的结果返回,可以抛出NoSuchElementException来表示查询结果为空。一个查询SQL,结果为空。
2023-07-28 16:02:49
116
1
原创 stream流各操作流的函数
Collection体系集合使用默认方法stream()生成流, default Stream stream()Map体系集合把Map转成Set集合,间接的生成流数组通过Stream接口的静态方法of(T… values)生成流。
2023-07-28 11:20:09
201
1
原创 SQL相关注意事项
日常开发写SQL的时候,尽量养成这个好习惯呀:写完SQL后,用explain分析一下,尤其注意走不走索引。如果要修改或删除数据,在执行SQL前一定要先备份要修改的数据,万一误操作,还能吃口统一使用UTF8编码说明:pk_ 即 primary key;uk _ 即 unique key;idx _ 即 index 的简称。假设loginTime加了索引。
2023-07-28 10:22:25
388
1
原创 idea设置忽略代码报错,只运行当前测试;启动命令行太长报错
解决Run-->Edit Configurations...-->Modify options-->Shorten Command line-->选择JAR。2、设置忽略代码报错,只运行当前测试类。1、启动命令行太长报错。
2023-07-24 17:10:49
906
原创 idea中git常用操作
要将整个文件添加到本地仓库,您可以按照以下步骤操作:1. 打开终端或命令行界面,并导航到您的代码项目目录。初始化新的仓库:在仓库的根目录中,执行以下命令来初始化一个新的仓库:git init这将创建一个新的空白仓库,2. 使用以下命令将所有文件添加到本地仓库:git add . 这将添加所有文件和文件夹中的更改到本地仓库。请注意, . 表示当前目录。git commit -m "添加文件到本地仓库"将引号中的消息替换为您想要的提交消息。现在,您的文件已成功添加到本地仓库中。
2023-07-09 09:34:03
226
1
原创 Optional常用判空
2.3、使用orElseThrow()方法在Optional对象为空时抛出异常:optional.orElseThrow(() -> new Exception("Value is not present"))这个方法会在有值的时候返回值,如果没有值,它会执行作为参数传入的 Supplier(供应者) 函数式接口。当optional中的值不为null时,orElse()中调用一个new对象的函数,无论前面optional是否为空,orElse()里面的方法都要执行,也就是都会执行创建,会消耗性能。
2023-07-04 22:39:29
2640
1
原创 写代码注意事项
6、这个异常没有必要往上抛,不影响主流程,不会影响后续代码逻辑,只需要记录下来,吞掉,代码继续往下走。2、service入参做参数校验(@Valided),controller层也要参数校验。5、异常==>看异常的子类。最好输出异常的参数,异常的信息,使用log.error(e),4、调用同事的方法/service,要在日志中,调用前打印我们的入参,调用后打印出参。3、调用某个方法得到一个对象或者集合等等,要先optional判空。1、调用三方接口要做异常处理。
2023-06-19 15:16:50
104
原创 java中注解实现敏感数据脱敏
在使用该注解时,只需要在需要脱敏的字段上添加该注解即可。字段使用了手机号码脱敏类型,并指定了脱敏规则为前3位明文,后4位明文,中间用*代替;:脱敏类型,枚举类型,包括默认脱敏、姓名脱敏、手机号码脱敏、身份证号码脱敏等;:脱敏规则,例如:手机号码脱敏规则为:前3位明文,后4位明文,中间用*代替;:脱敏开始位置,从0开始计数,默认为0;:脱敏占位符,例如:用*代替敏感数据;字段使用了默认脱敏类型,对姓名进行脱敏处理。:脱敏结束位置,默认为整个字符串长度。注解进行了脱敏处理。该注解包含了以下属性: -
2023-06-19 14:00:34
811
原创 java项目中使用@Validated注解进行数据校验
Spring Validation验证框架对参数的验证机制提供了@Validated(Spring’s JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数验证结果。简言之:@Validated进行分组验证和方法验证(方法入参的验证(普通和对象)),@Valid主要嵌套验证。不能用在成员属性(字段)上,也无法提示框架进行嵌套验证。能够用在成员属性(字段)上,提示验证框架进行嵌套验证。
2023-06-19 13:51:59
4678
原创 java中如何计算出对象的大小,设置JVM参数,防止OOM问题
首先,我看B站up说在对象中包装类属性的大小是4个字节,保存的是在堆中的地址。基本数据类型大小就是实际的大小。1、对象本身在堆空间的大小:它的属性如果是对象只会保存引用地址。就不是实际属性对象的大小。2、对象及其引用树上的所有对象的综合大小:就包含了属性对象的大小,是全部大小的总和。
2023-06-13 19:09:46
510
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人