- 博客(87)
- 收藏
- 关注
原创 MyBatis-Plus-join一张表连两次查询
selectAs(UserAddress::getFileUrl, User::getUserCover) 则是一个子查询,将 UserAddress 表中的文件 URL 字段映射到 User 表的用户封面字段。on.eq(User::getId, address::getUserId) 指定了连接条件,即 User 表的 id 字段等于 UserAddress 表的 userId 字段。这一部分是进行连表查询的关键。(on, address) 表示连接条件对象和 UserAddress 表的别名。
2024-05-29 10:51:53 535
原创 mysqlySQL中启用慢查询日志并设置阈值
分析慢查询:一旦慢查询被记录到日志中,您可以分析这些查询并采取相应的措施来优化它们。通常情况下,您可以使用EXPLAIN语句来查看查询执行计划,并根据需要优化索引或者重构查询。注意:启用慢查询日志可能会对性能产生一定影响,因为MySQL需要将慢查询信息写入日志文件。因此,在生产环境中,建议仅在必要时启用慢查询日志,并在分析完慢查询后及时禁用它。监视慢查询日志:在指定的日志文件路径中,您将找到记录慢查询的信息。重启MySQL服务器:保存并关闭配置文件后,重启MySQL服务器使更改生效。
2024-04-12 13:31:34 804 1
原创 串行流(Sequential Stream)和并行流(Parallel Stream)区别
在上面的示例中,串行流的处理是顺序执行的,而并行流的处理可以利用多线程并行处理数据。综上所述,选择使用串行流还是并行流取决于具体的应用场景和需求。:并行流可以利用多线程并行处理数据,提高处理速度,特别是在大规模数据处理情况下性能优秀。:由于串行流是单线程执行的,因此不需要考虑多线程情况下的线程安全性。:串行流无法利用多线程并行处理数据,对于需要并行计算的场景效率较低。:并行流在处理共享状态时需要考虑线程安全性,需要额外的注意和处理。:对于数据量较小且处理时间短的情况,串行流通常能够满足需求。
2024-03-29 16:06:33 577
原创 POI和EasyExcel区别和操作Excel
EasyExcel 能大大减少占用内存的主要原因是在解析 Excel 时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。请注意,仍然可能会消耗大量内存,这些内存基于您正在使用的功能,例如合并区域,注释…Apache POI 官网地址:https://poi.apache.org/会比较麻烦,比较消耗内存出现OOM(内存溢出异常)优点:可以写非常大的数据量,如100万条甚至更多条,写数据速度快,占用更少内存。缺点:写数据时速度非常慢,非常消耗内存,也会发生内存溢出,如100万条。
2024-03-20 11:55:00 1607
原创 Fiddler入门:下载、安装、配置、抓包、customize rules
其中判断请求url中是否包含路径是oSession.fullUrl.Contains方法,将字符串转为json的是Fiddler.WebFormats.JSON.JsonDecode(response_body)方法,获取对象中的json是response_json.JSONObject方法,打印日志是FiddlerApplication.Log.LogString(video_name)方法。一般APP都有web端主页,也有微信小程序,所以APP的网络请求可以通过web端主页看,或者通过小程序看。
2024-03-05 16:52:38 4342 1
原创 MyBatis-Plus的saveBatch批量插入为何效率很低耗时长详解及解决方案
后面我加上后还是很慢,后面一遍一遍排查,发现批量插入saveBatch(List)中的entity。,否则还是更具源码for循环中一条一条循环去插入。
2024-02-02 14:58:24 1205
原创 SSE长连接( SpringBoot整合SSE(Server-Sent Events)可以实现后端主动向前端推送数据)
实现sse接口 SseServiceImpl.java。定时任务 SendMessageTask.java。前端路由 IndexController.java。定义sse接口 SseService.java。定义一个返回数据 Message.java。这里简单是用Apifox测试了一下的效果。
2024-01-30 14:09:39 1455 1
原创 Android下载gradle失败解决方法
2、在setting中查看Gradle的保存路径,如下图:C:/Users/Administrator/.gradle,加上第一步的zip路径得到下载gradle zip包路径即:C:/Users/Administrator/.gradle/wrapper/dists。3、用下载工具把对应版本的gradle下载下来(下载地址:https://mirrors.cloud.tencent.com/gradle/),把下载的zip包放进第二部的目录中。
2024-01-23 15:00:28 1392
原创 设计数据库原则
常见关键字(不得直接作为相关命名):range、match、delayed、select、and、from、where、not、in、out、add、as、user、name、key、index、type、group、order、max、min、count、concat、by、desc、asc、null等等,更多请参考 MySQL 官方保留字。如果超长,则从前面单词开始截取,保留单词前三位,保留完整的最后一个单词,如果依然超长,则保留前面单词首字母,直接和最后一个单词连接;内部变量命名以“v_”开头命名;
2024-01-23 09:06:50 918
原创 Use try-with-resources or close this “FileInputStream” in a “finally” clause.
2.类实现AutoCloseable方法也可以,直接不用写finally就可以。1.finally里close的时候用try{}catch{}包起来就好了。原始代码是这样的,当时是个阻断的bug。使用sonarqube检查代码时报错。
2024-01-18 13:12:22 1071 1
原创 安卓fragment监听文本内容取值
首先需要自己定义一个最大的BaseFragment,继承这个BaseFragment并在骑宠填充你需要绑定的Fragment。其中v是绑定Fragment的位置。可以在后面的代码中获取直接获取信息。在初始化的时候根据id进行赋值。
2024-01-11 15:58:59 492
原创 修改微软输入法的时间&日期格式
比如,按照上面我的设置,输入"sj"后第五个候选词,情况如下,虽然我设置的格式确实是第五个候选词,但只是把原生的配置挤到后面了。我想快捷方便记录输入时的当前时间,但是使用这种方式记录的时间格式不友好,很多数据处理软件没办法直接识别这个格式(比如Excel),所以我打算换成常用的时间格式。(因为对于按键习惯来说,按下"5"远没有按下"1"方便,同时很少情况是只输入一个"s"然后选词,也就忽视了1位置被占用给我选词带来的麻烦)一般来说: %yyyy%-%MM%-%dd% %HH%:%mm%:%ss%
2024-01-02 17:16:26 572
原创 maven命令导入第三方jar包
第一步:在pom.xml文件中添加jar包依赖配置,如导入的包名为libH5SDK-Common-1.0.5.0.jar ,配置如下。-DgroupId=com.oracle :这个是项目的包路径,叫什么都可以,一般我们用什么类型的jar包名就叫啥。-DartifactId=ojdbc6 :jar包名称。叫什么无所谓,但最好和jar名一致。-Dfile=C:6.jar jar包所在路径,一定要写对,否则会找不到。需要修改的地方:(等号右边的值修改为你自己的)这个命令有点长,中间不要有换行,换行会出问题。
2023-12-12 09:49:25 444
原创 mysql my.cnf配置文件不生效
翻译这句话就是:全世界都能修改这个my.cnf文件, 安全考虑那就忽略这个文件吧,你配置的我们不用了,全部默认。言外之意就是,配置文件的权限是。
2023-10-31 11:14:03 354
原创 使用canal实现数据实时同步
我自己的应用场景是在统计分析功能中,采用了微服务调用的方式获取统计数据,但是这样耦合度很高,效率相对较低,我现在采用Canal数据库同步工具,通过实时同步数据库的方式实现,例如我们要统计每天注册与登录人数,我们只需要把会员表同步到统计库中,实现本地统计就可以了,这样效率更高,耦合度更低。这其实是添加了能远程访问mysql数据库的用户,账号和密码都是canal,由于我的虚拟机本来就添加过root用户,这里我就不再添加这个canal了,你根据自己情况。基于数据库增量日志解析,提供增量数据订阅&消费。
2023-10-27 10:04:28 1783
原创 23种设计模式详解
简单工厂存在的问题与解决方法: 简单工厂模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了开闭原则,所以,从设计角度考虑,有一定的问题,如何解决?虽然我们具体在构建一台主机的时候,每个对象的实际步骤是不一样的,比如,有的对象构建了i7cpu的主机,有的对象构建了i5cpu的主机,有的对象构建了普通键盘,有的对象构建了机械键盘等。当客户端进行享元对象的请求时,如果享元池中有对应的享元对象则直接返回对应的对象,否则工厂类创建对应的享元对象并保存到享元池。
2023-10-10 09:35:21 300
原创 springboot2.7.15集成springcloud,springcloudalibaba
这边用的是springboot2.7.15以下是集成springcloud,springcloudalibaba的版本推荐。这个是springcloud版本组件的说明。其他的依赖均继承父依赖即可。
2023-10-08 10:15:39 971
原创 fatal: not a git repository (or any of the parent directories): .git
提示说没有.git这样一个目录。
2023-08-22 10:12:37 257
原创 Nginx代理转发地址不正确问题
使用ngix前缀去代理转发一个地址,貌似成功了,但是进不到正确的页面,能够访问,但是一直404远处出来nginx会自动拼接地址在后面。后面才知道要将这段代码加上去,去除前缀转发。
2023-08-21 21:31:41 453
原创 idea 设置了 vm options后无法启动
找到自己idea使用的.vmoptions文件,我是因为之前idea有缓存,一直用的我修改的文件,后面删了就可以启动了。今天想扩展ideaj的JVM 设置了 vm options后无法启动。找了很久,重新卸载后安装也没有用。后面直接打开idea的bat文件。
2023-07-24 10:55:56 648
原创 redis配置文件详解
和 Spring 配置文件类似,可以通过 include 包含,redis.conf 可以作为总文件,可以包含其他文件。开头定义了一些基本的度量单位,只支持 bytes,不支持 bit。这些单位对大小写是不敏感的。
2023-05-04 09:00:54 103
原创 在Java泛型中,T、E、K、V、?等字母都是泛型的类型
需要注意的是,这些字母只是泛型类型参数的一种命名方式,其实际含义并不限于上述解释,而是取决于具体的代码实现。在实际编程中,可以根据需要自定义泛型类型参数的名称。在Java泛型中,T、E、K、V、?K:表示Map中键的类型,常用于泛型类或泛型方法中。V:表示Map中值的类型,常用于泛型类或泛型方法中。E:表示集合元素的类型,常用于泛型类或泛型方法中。T:表示一般的类型,常用于泛型类或泛型方法中。: 通配符,表示任意类型,常用于泛型方法中。
2023-04-23 15:47:40 997
原创 观察者模式
缺点: 1、如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。需要在系统中创建一个触发链,A对象的行为将影响B对象,B对象的行为将影响C对象……意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。一个对象的改变将导致其他一个或多个对象也发生改变,而不知道具体有多少对象将发生改变,可以降低对象之间的耦合度。何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。
2023-04-19 09:00:14 387
原创 redis集合指定返回对象
在这里,我们定义了两个不同的RedisTemplate Bean:一个用于<String, Object>,另一个用于<String, List>。若您已经定义了多个名为userListRedisTemplate的RedisTemplate bean,并且想要在注入时使用指定的RedisTemplate,可以使用@Qualifier注解结合bean名称指定具体的RedisTemplate。此时我们需要添加配置文件,添加自己指定的类型,并扩展redisTemplate。
2023-04-14 22:43:27 365
原创 k8s常用软件包下载
请根据实际需要选择相应版本的安装包进行下载。如果下载速度较慢,可以尝试使用下载工具如 wget 进行下载,也可以考虑使用国内镜像源进行下载。下载完成后,可以将这些安装包上传到内网服务器中,方便后续的安装。在安装过程中,需要注意软件之间的版本兼容性问题。
2023-04-06 14:19:26 1185
原创 JAVA接收Byte字节数组,判断文件是否什么图片类型
在 Java 中,我们可以通过解析图片字节数据的前几个字节来获取图片的类型,通常我们称之为文件的“魔数”。例如,JPEG 图片的前两个字节的十六进制表示是 “FF D8”,PNG 图片的前八个字节的十六进制表示是 “89 50 4E 47 0D 0A 1A 0A”。需要注意的是,将图片转换为不同的格式可能会导致图片质量的降低。同时,如果需要处理多个图片,需要为每个图片生成不同的临时文件来避免文件名冲突。如果你需要对图片进行格式转换,建议使用专业的图片处理工具来进行转换,以保证图片质量和大小的最优化。
2023-03-27 23:00:52 2575
原创 docker虚拟机满了解决方法no space left on device( [ERROR] Unknown/unsupported storage engine: InnoDB )
如果你想让这个磁盘在每次系统启动时都自动挂载,可以将挂载信息添加到/etc/fstab文件中。找到你要挂载的磁盘,并创建一个目录来作为挂载点。忙了一天,发现说此版不够用户,第一时间是给虚拟机分配磁盘。虚拟机中分配完磁盘后,需要将其挂载到虚拟机的文件系统中才能使用。在这个命令中,/dev/sdb1是要挂载的磁盘设备名称,/mnt/mydisk是挂载点目录。这个命令会将挂载信息写入fstab文件中,这样系统在启动时会自动挂载这个磁盘。修复完后检查了一下,原来是日志满了,差点删除docker容器了。
2023-03-27 22:40:15 855
原创 springBoot虚拟机运行脚本
把这个文件放在 /etc/systemd/system目录下。#新闻一个新的server 后需要让这个server生效。#使用journalctl查看管理日志。#修改配置文件需要reload。
2023-03-20 14:21:13 237
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人