自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据查询修改删除慢可使用mysql表分区功能(心跳记录表分区操作)

设备心跳每天新增数据量80万条;需要定时删除7天前的心跳数据,普通删除语句属于行级删除,即便使用到索引,速度依然慢;后改成使用存储过程分批次多次删除,虽然每个批次删除速度很快但是总耗时还是长;最后决定改成使用分区操作,对7天前的数据进行删除:速度快,毫秒级(直接删除那些需要清理的数据所在的分区)。1.将分区字段beat_time(字段类型datetime)设置成主键(原主键Id,新增主键beat_time);DoorHearBeatLogServiceImpl方法。2.创建历史分区和兜底分区(

2025-12-31 13:25:05 326

原创 cron表达式语法(定时任务常用)

如果15号正好是周六,则找最近的周五(14号)触发, 如果15号是周未,则找最近的下周一(16号)触发.如果15号正好在工作日(周一至周五),则就在该天触发。序号(表示每月的第几个周几),例如在周字段上设置”6#3”表示在每月的第三个周五.注意如果指定”#5”,正好第五周没有周六,则不会触发该配置(用在母亲节和父亲节再合适不过了);在日字段设置上,表示当月的最后一天(依据当前月份,如果是二月还会依据是否是润年[leap]), 在周字段上表示星期六,相当于”7”或”SAT”。

2025-12-31 11:09:22 610

原创 mysql-5.7.38-winx64.zip 启动教程(免安装版)

核心前提:MySQL 5.7 免安装版启动前必须配置my.ini并初始化,缺一不可;关键步骤:解压(无中文路径)→ 建 my.ini → 管理员 CMD 初始化 → 启动(临时 / 服务)→ 修改密码;推荐方式:安装为 Windows 服务(MySQL57),方便后台运行和开机自启。

2025-12-18 11:45:12 590

原创 mysql国内镜像下载地址

https://repo.huaweicloud.com/mysql/Downloads/

2025-12-18 11:38:17 93

原创 dexie.js封装了indexDB,以下详细列举dexie.js的常用API

/ 表结构:users: '++id, [name+age]'(复合索引 name+age).where('[name+age]') // 指定复合索引.between(['张三', 25], ['张三', 30]) // 按 name=张三、age 25-30 查询.getAll();初始化Dexie构造函数 +定义表结构;CRUD(单条)、bulkXXX(批量);查询where()条件链 +排序分页;事务保证原子性操作;索引:主键 / 普通 / 复合 / 多值索引,提升查询效率;事件。

2025-11-24 14:40:06 438

原创 mysql共享表空间从哪个版本开始是默认开启的

MySQL 5.7.5 及更早的所有支持 InnoDB 的版本(包括 5.1、5.5、5.6 全系列);从MySQL 5.7.6 开始,共享表空间不再默认开启,独立表空间成为默认配置(契合你大数据量 + 高并发的场景需求)。如果你的 MySQL 版本是 5.7.6 及以上,无需额外配置,新建表默认就是独立表空间;若版本更低(如 5.5),则必须手动开启。

2025-11-20 16:28:22 364

原创 mysql共享表空间与独立表空间,哪种更适用于大数据量和高并发系统

核心结论:大数据量 + 高并发系统,独立表空间是「唯一选择」—— 共享表空间的资源竞争、维护困境、故障风险,在这两个场景下是致命的;而独立表空间的隔离性、灵活性、性能稳定性,能从根源解决这些痛点。你的场景呼应:你的门禁心跳日志表(大数据量 + 高并发写入),正是独立表空间的典型适配场景 —— 启用后,既能通过独立 .ibd 文件释放磁盘空间,又能避免日志清理时影响其他核心业务,高并发写入时 IO 不冲突,响应更稳定。最终原则。

2025-11-20 16:16:19 975

原创 Lombok常用注解(java)

Lombok 是 Java 开发中常用的工具库,通过注解简化大量样板代码(如 getter/setter、构造器、日志对象等)。以下是其。

2025-11-18 16:06:59 549

原创 (mysql数据库)如何批量查询哪些表用的引擎是MyISAM,并将存储引擎改为InnoDB

要批量查询数据库中所有使用存储引擎的表,可以通过查询 MySQL 系统库中的TABLES表实现,该表记录了所有表的元数据(包括存储引擎类型)。

2025-10-24 13:49:58 204

原创 (mysql)为什么一条慢sql会影响到其他简单sql的执行

慢 SQL 的本质是 “长期独占关键资源”,而数据库的资源(锁、CPU、IO、连接、内存)是有限的。其他简单 SQL 虽然逻辑简单,但因 “资源被慢 SQL 占用”,不得不等待或降级使用低速资源(如 swap),最终表现为 “执行变慢”。限制慢 SQL 的资源占用时间(如超时终止、优化 SQL 减少执行时间),避免其长期独占资源。

2025-10-24 13:47:11 614

原创 MyBatis 的 <foreach> 标签中,collection 属性对应的值

collection的取值完全依赖于传入 Mapper 方法的参数类型单个 List →list单个数组 →arrayMap 参数 → Map 中集合的 key自定义对象 → 对象中集合属性的名称多参数(无注解)→多参数(有 @Param)→ 注解指定的名称根据参数类型选择对应的值,即可正确遍历集合生成动态 SQL。

2025-10-20 15:58:08 440

原创 在 JavaScript 内部最后一行赋值a=2那么这a会发生变量提升吗?

若a是未声明的隐式全局变量(直接a = 2无变量提升,赋值时才创建变量。若a是 **var声明会提升到作用域顶部,但赋值留在原地(提升后未赋值时为undefined若a是 **let/const声明会提升,但进入暂时性死区(声明前访问报错),赋值留在原地。只有通过varletconst声明的变量才可能发生 “变量提升”,未声明的隐式全局变量没有提升行为。

2025-10-20 11:03:23 372

原创 var a = 1;可不可以认为是赋值语句吗?

var a = 1是带初始化的变量声明语句,包含赋值操作,但整体属于 “声明语句” 范畴。可以说它 “包含赋值行为”,但不能等同于 “单纯的赋值语句”(单纯的赋值语句没有var等声明关键字)。这种区分的意义在于理解 JavaScript 的作用域和变量提升规则(例如var声明的变量会提升到作用域顶部,而单纯的赋值不会)。var a = 1需要加;吗?var a = 1后面可以不加;,但建议加上;语法允许var a = 1后可以不加;(ASI 可能补全)。推荐做法:建议加上;var a = 1;

2025-10-20 10:57:13 389

原创 JavaScript中分号的使用

遵循这一规则能减少语法错误,提升代码一致性。

2025-10-20 10:49:03 344

原创 JUC并发包CountDownLatch减法计数器的使用实例(多线程)

确保某些关键资源(如配置文件、数据库连接、网络服务)初始化完成后,其他线程才能继续执行。通过合理使用 CountDownLatch,可有效简化多线程协调逻辑,提升系统并发性能。在多线程性能测试中,确保所有线程同时开始执行,或等待所有线程完成后统计结果。多个线程并行执行子任务,主线程需要等待所有子任务完成后再继续执行。任务分多个阶段执行,每个阶段需要等待前一阶段所有任务完成。

2025-07-19 11:59:16 921

原创 spring常用注解有哪些?

配置类注解作用:声明一个类为配置类,等价于 XML 中的<beans>标签。示例/*** 线程池配置类**/// 核心线程池大小// 最大可创建的线程数// 队列最大长度// 线程池维护线程所允许的空闲时间// 线程池对拒绝任务(无线程可用)的处理策略@Import作用:导入其他配置类,替代 XML 中的<import>标签。示例// 示例1:定义当前模块的 Service@Bean// 具体实现类。

2025-07-17 11:26:17 1016

原创 Spring框架提供的@Async注解的异步方法使用注意事项

合理使用@Async能显著提升应用性能,但需注意代理机制、线程池配置和异常处理等细节。建议结合自定义线程池和完善的监控机制,确保异步任务的稳定性。

2025-07-16 15:08:48 952

原创 java8函数式接口

函数式接口是仅包含一个抽象方法的接口,不过可以存在多个默认方法或静态方法。Java 8 的注解可用于标记接口,以确保编译器对其进行检查,但这并非强制要求。

2025-07-16 14:28:53 217

原创 在Spring Boot应用中,实现启动完成后立即运行特定代码的方法有以下几种:

通过监听 Spring Boot 的生命周期事件(如 ApplicationReadyEvent),可以实现在应用完全启动后运行代码。应用启动完成后的检查或初始化:适合于需要确保整个Spring上下文已经完全加载后才能执行的操作,比如发送健康检查请求、触发定时任务等。这是最常用的方法之一。需要管理资源启动和释放的场景:适合需要在整个应用生命周期内管理某些资源的启动和停止,比如启动后台线程、关闭资源池等。需要复杂参数处理的任务:适用于需要解析和操作命令行参数的场景,比如将参数转换为特定的数据结构进行处理。

2025-07-15 16:12:26 418

原创 对BCC/异或理解

异或(XOR)是一种位运算,是计算校验值的 “工具”;BCC是一种校验方法,其核心是通过异或运算得到一个校验值,用于验证数据传输的完整性;在安卓串口的 Modbus 通讯中,BCC(基于异或)能快速检测数据是否在传输中被篡改或出错,确保通讯可靠性。

2025-07-15 15:33:46 639

原创 安卓串口通讯,使用Modbus 协议(应用层协议);对16进制指令(BCC/异或)校验方法(java方法)

在 main 方法中提供了一个简单的使用示例,演示了如何添加 BCC 校验码和验证校验结果。对于输入的 Modbus 指令 "01 03 00 00 00 01",计算得到的 BCC 校验码是 "D5",最终带校验码的完整指令是 "010300000001D5"。可以将此代码集成到你的安卓应用中,用于 Modbus 协议的串口通讯。- 辅助方法,将 16 进制字符串转换为字节数组。- 计算并添加 BCC 校验码到原始指令。- 验证接收到的带校验码的指令是否有效。

2025-07-15 15:15:15 399

原创 安卓串口通讯,使用Modbus 协议(应用层协议);对16进制指令末尾crc校验方法(java方法)

以下是一个针对 Modbus RTU 协议的 CRC16 校验 Java 方法,专门用于安卓串口通讯场景。

2025-07-15 10:04:43 340

原创 完整的WebSocket客户端实现,包含同步/异步消息处理、异常处理和连接管理

这个客户端特别适合物联网场景下的设备数据采集,您可以根据实际需求调整心跳间隔、重试策略等参数。同步:通过 getMessageSync() 阻塞等待消息。异步:通过 MessageCallback 实时推送。记录最后温度值 (lastTemperature)BlockingQueue 实现安全的消息传递。使用 volatile 保证状态可见性。连接状态跟踪 (running)

2025-06-13 16:55:36 372

原创 Java WebSocket 客户端同步响应实现方案

要实现 WebSocket 客户端在接收到服务器响应前暂停业务执行,然后在收到响应后继续执行,我们需要使用同步阻塞机制。在 Java 中,可以通过或来实现这种功能。下面是一个使用。

2025-06-13 13:26:20 534

原创 前端ajax请求中,如何设置配置项processData及Content-Type,对于java后台接口对应不同的Content-Type,该如何进行接收

前端ajax请求中,如何设置配置项processData及Content-Type,对于java后台接口对应不同的Content-Type,该如何进行接收在前端 AJAX 请求里,和这两个配置项的设置,和 Java 后台接口接收数据的方式紧密相关。

2025-06-10 10:49:33 579

原创 Java try 中 return 与 finally 的执行顺序

因为这可能会让代码的逻辑变得复杂,还容易引发难以排查的问题。语句执行之前运行,不过要留意返回值的情况。并且要注意,应避免在。语句,那么这个返回值就会覆盖掉。语句执行前就已经执行了。在 Java 里,当。

2025-06-09 14:19:27 394

原创 H5plus监听手机导航栏返回按钮的点击事件

如果你使用 HTML5Plus 创建了自定义导航栏(而非原生导航栏),可以通过标准 DOM 事件监听:javascript// 假设导航栏按钮ID为navButton// 处理按钮点击事件console.log('导航栏按钮被点击');});下面是一个完整示例,展示如何自定义返回逻辑并阻止默认行为:javascript// 监听返回按钮// 阻止默认返回// 获取当前页面路径(假设使用Vue或React路由)// 根据当前页面决定如何处理返回// 在首页点击返回时确认退出应用。

2025-06-06 11:07:52 2007

原创 java中对list排序

Comparator如果需要降序排序或自定义排序规则,可以传入Comparator// 降序排序// 输出 [8, 5, 3, 2, 1]如果List让对象实现Comparable接口,定义自然排序规则:int age;@Override// 按年龄升序// 按年龄排序使用Comparator灵活定义排序:// 按姓名排序。

2025-06-05 08:29:58 442

原创 MyBatis XML中 resultMap 与 resultType 的使用场景

使用resultType的情况:查询结果简单,且列名和 Java 对象属性名能自动对应上时使用。使用resultMap的情况:查询结果复杂,或者需要手动定义列名和属性名的映射关系,以及处理对象间的关联关系时使用。一般来说,resultType使用起来更简单便捷,而resultMap的功能更强大,能应对复杂的映射需求。

2025-05-30 17:00:47 1806

原创 mysql设置最大连接数,最小连接数,超时时长

1.在my.ini中(不配置时,使用这个配置文件的默认值max_connections默认值为你可以通过以下命令查看当前实例的实际值:(在navicat(数据库连接工具)使用)如图。

2025-05-30 14:52:36 1889

原创 Lambda 表达式对共享变量进行修改实例

操作,并没有在获取锁之后再次请求获取其他锁或者同一个锁,所以不存在锁嵌套使用的情况。在这个代码里,每个线程在执行 Lambda 表达式时,会尝试获取。综上所述,给定代码中不存在锁嵌套使用的情况。类的当前实例)这个锁,然后对。

2025-05-05 09:20:52 143

原创 锁嵌套实例

锁嵌套使用指的是在已经获取一个锁的情况下,再次请求获取同一个锁或者其他锁。System.out.println("获取外层锁");System.out.println("释放外层锁");System.out.println("获取内层锁");// 执行一些操作System.out.println("释放内层锁");在这个例子中,方法获取了lock锁,在持有该锁的期间调用了,而又尝试获取同一个lock锁,这就是锁的嵌套使用。

2025-05-05 09:18:13 264

原创 lambda表达式使用

Lambda 表达式是 Java 8 引入的一个重要特性,它允许你将函数作为方法的参数传递,使得代码更加简洁和灵活。

2025-05-05 09:01:45 413

原创 java面向对象思想

抽象是指将现实世界中的事物抽象成类和对象,忽略其非本质的细节,只关注其本质特征和行为。在 Java 中,抽象通过抽象类和接口来实现。抽象类不能被实例化,它可以包含抽象方法和具体方法;接口是一种特殊的抽象类型,它只包含抽象方法。Java 面向对象思想通过对象、类、封装、继承、多态和抽象等概念,提供了一种结构化、模块化的编程方式,使得代码更加易于理解、维护和扩展。在实际开发中,合理运用面向对象思想可以提高开发效率和代码质量。

2025-05-04 17:51:48 404

原创 springboot中使用多线程处理短信发送业务

System.out.println("已向用户 " + user.getName() + " (手机号:" + user.getPhoneNumber() + ")发送欢迎短信。注解用于告诉 Spring 容器,被该注解标注的类是一个配置类,类似于传统的 XML 配置文件。System.err.println("发送短信时发生中断异常: " + e.getMessage());System.err.println("发送短信时发生错误: " + e.getMessage());2.写短信发送工具类。

2025-05-04 17:42:20 552

原创 java多线程的几种实现方式

/比第一种多出这步(new一个Thread类,并将任务类r传进去)1.定义一个Mythread类并继承Thread类,重写Thread的run方法,方法内部写具体的业务代码。//第二种实现runable接口,重写Runable接口run方法。// 多线程的第一种启动方式继承Thread,成为子类。2.调用Mythread类。1.定义MyRun类。

2025-05-03 17:58:23 549

空空如也

空空如也

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

TA关注的人

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