- 博客(83)
- 收藏
- 关注

原创 约束+数据库技术+事务
在SQL(Structured Query Language,结构化查询语言)中,多表查询可以通过多种方式实现,包括JOIN(连接)、UNION(合并结果集)、子查询等。如果两个表中的行在指定的连接键上有相同的值,这些行就会被组合在一起返回。隐式外连接虽然在某些情况下仍然可以使用,但它们的使用应该尽量避免,特别是在复杂的查询中。子查询也可以是相关子查询(correlated subquery),即子查询中的条件依赖于外部查询的行。:左连接,返回左表(表A)的所有行,即使在右表(表B)中没有匹配的行。
2024-03-08 19:33:26
2461
原创 Linux 下 MySQL 8 搭建教程
Linux 中的 MySQL 默认是区分表名大小写的,如果你安装的是 MySQL 8,需要在数据库初始化时设置不区分大小写,否则初始化后在配置文件中设置并重启时会报错。输入刚修改的密码,按回车键。到此,MySQL 已经安装完成。将解压并重命名后的 MySQL 文件夹移动到。给解压的 MySQL 文件夹及创建的。服务的 3、4、5 状态为开或者为。查看是否安装了 MySQL 依赖库。下载所需的 MySQL 安装包。添加服务列表的方式,放置到。为了满足生产环境服务器对。用户的限制,需要创建。
2025-03-14 11:49:17
985
原创 Pinia详解
Pinia是Vue的一个状态管理库,它是Vuex的替代方案。简单易用:其API设计简洁,容易理解和上手,不像Vuex那样有较多复杂的概念。支持TypeScript:对于大型项目或者对类型安全要求较高的项目非常友好。支持组合式API和选项式API:可以方便地在不同风格的Vue项目中使用。模块热替换:在开发过程中方便调试,修改状态相关代码后可以实时更新。
2025-01-07 15:26:06
916
原创 Vue 3 详解
/ child.value 是 组件的实例。// fullName.value = "范 冰冰";// 声明一个 ref 来存放该元素的引用。// 注意:我们这里使用的是解构赋值语法。// 必须和模板里的 ref 同名。// 可以直接侦听一个 ref。// 挂载时机生命周期函数;// 一个计算属性 ref。
2025-01-07 14:20:18
883
原创 Node.js 中 http 模块的深度剖析与实战应用
本文全方位、深层次地解析了 Node.js 中 http 模块的关键要点,从服务器搭建的基础配置,到请求与响应的精细处理,再到请求参数的巧妙获取,每一步都结合详细的代码与重点标注,旨在助力开发者透彻掌握 http 模块的精髓,为开发功能完备、交互流畅的网络应用提供坚实的技术支撑。无论是新手入门还是老手进阶,都能从中汲取有益养分,快速应用于实际项目开发之中。
2025-01-03 15:43:55
1210
原创 Node.js 知识(规范)
在 Node.js 项目开发中,了解和掌握 ESM 规范与 CJS 规范的使用方式很重要,开发人员可以根据项目的实际需求、兼容性要求等因素来选择合适的模块规范进行代码的组织和模块间的交互,确保项目能够顺利运行并实现预期的功能。
2025-01-03 11:28:56
390
原创 Vue 3 中实现页面特定功能控制
通过使用 Vue 3 的provide和inject,我们可以轻松地在特定页面控制功能的显示与隐藏,而无需依赖于路由判断。这种方法使得状态管理更加灵活,同时也保持了组件的独立性和可重用性。希望这篇文章能帮助你在 Vue 3 项目中实现类似的功能控制。
2024-11-29 17:41:58
563
原创 Git 操作
总之,Git 是一个非常强大的版本控制工具,掌握这些基本操作可以帮助你更好地管理你的代码。同时,Husky、npm 镜像源切换、ESLint 等工具也可以提高你的开发效率和代码质量。
2024-10-31 15:15:50
701
1
原创 nvm 版本管理工具
需要注意的是,降低 npm 版本可能会影响到你正在进行的项目,确保在进行操作之前了解其可能带来的影响,并备份重要的项目文件。同时,不同的项目可能对 npm 的版本有不同的要求,在切换版本时要谨慎考虑。需要注意的是,不同的项目可能对 Node.js 和 npm 的版本有不同的要求,确保在进行版本切换时不会影响到其他正在进行的项目。通常,不同的 Node.js 版本会自带不同版本的 npm。可以通过搜索或者查看 npm 的官方文档来确定如何安装特定版本的 npm。替换为你想要安装的 npm 版本号。
2024-10-30 11:29:31
276
原创 MySQL面试技术(分页)
SQL 分页方式的选择取决于所使用的数据库类型和版本,以及性能和可维护性的考量。不同的分页方式可能会在性能和适用性上有所差异,开发人员需要根据具体情况选择合适的方式来实现分页功能。
2024-08-21 11:01:38
676
原创 场景问题解决方案
所谓幂等:多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。基于RESTful API的角度对部分常见类型请求的幂等性特点进行分析:java 即操作完成后,释放掉锁,因为幂等问题通常是一个请求快速过来两次或者多次,所以在释放锁之前让后来的同一个用户的请求直接失败即可,保证当前方法在短时间之内只能被执行一次,切记控制锁的粒度。单点登录的英文名叫做:Single Sign On(简称 SSO)。多系统即可能有多个Tomcat,而Session是依赖当前系统的Tomcat
2024-08-21 10:30:00
766
原创 Redis 技术详解
缓存预热是指系统上线后,提前将相关的缓存数据加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题,用户直接查询事先被预热的缓存数据。如果不进行预热,那么 Redis 初始状态数据为空,系统上线初期,对于高并发的流量,都会访问到数据库中,对数据库造成流量的压力。缓存预热解决方案数据量不大的时候,工程启动的时候进行加载缓存动作。数据量大的时候,设置一个定时任务脚本,进行缓存的刷新。数据量太大的时候,优先保证热点数据进行提前加载到缓存。
2024-08-20 15:34:31
2238
原创 消息中间件
EMQ 是什么:EMQ X 是开源社区中最流行的 MQTT 消息服务器,广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等领域,如物联网 M2M 通信、Android 消息推送、移动即时消息、智能硬件、车联网通信等。项目中的应用:在我们的项目中,主要使用 EMQ 实现服务器和物联网设备之间的信息传输,以及作为消息队列产品实现各个微服务之间的数据传输,例如设置状态实时监控、自动维修工单创建和自动补货工单创建、订单创建以及支付结果确认、设备出货控制、设置出货结果通知处理等。
2024-08-20 11:22:19
885
原创 微服务框架
在分布式系统中,服务可能失败导致雪崩,Hystrix 是防雪崩利器,具有服务降级、服务熔断、服务隔离、监控等防止雪崩的技术。服务降级:接口调用失败调用本地方法返回空。服务熔断:接口调用失败进入熔断方法返回错误信息。服务隔离:隔离服务之间相互影响。服务监控:记录服务调用的运行指标。在分布式系统中,一个业务因跨越不同数据库或不同微服务而包含多个子事务,要求所有子事务同时成功或失败,这就是分布式事务。例如某电商系统下单操作,需请求订单服务、账户服务、库存服务。
2024-08-20 10:16:30
949
原创 SSM框架
我们需要增加新功能也方便,提高了系统的扩展性。如果数据库结果集中的列名和要封装实体的属性名有不一致的情况用 resultMap 属性,通过 resultMap 手动建立对象关系映射,resultMap 要配置一下表和类的一一对应关系,所以说就算你的字段名和你的实体类的属性名不一样也没关系,都会给你映射出来。分页插件的基本原理是使用 Mybatis 提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的 sql,然后重写 sql,根据 dialect 方言,添加对应的物理分页语句和物理分页参数。
2024-08-19 21:18:25
680
原创 MySQL面试相关精选
分类含义特点聚集索引(Clustered Index)将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据必须有,而且只有一个二级索引(Secondary Index)将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键可以存在多个如果存在主键,主键索引就是聚集索引。如果不存在主键,将使用第一个唯一(UNIQUE)索引作为聚集索引。如果表没有主键,或没有合适的唯一索引,则 InnoDB 会自动生成一个 rowid 作为隐藏的聚集索引。
2024-08-19 18:26:33
1252
原创 Java-Web面试题汇总
形象举例:A 和 B 打电话,A 说“我没啥要说的了”,B 答“我知道了”,但 B 可能还有话,A 不能要求 B 跟着结束,B 说完“我说完了”,A 答“知道了”,通话结束。GET 方法主要用于获取信息,不会对服务器数据产生副作用,具有幂等性,且可以被缓存,适用于多次重复获取相同结果且不改变服务器状态的场景。POST 方法通常用于修改服务器上的数据,可能会产生副作用,不具有幂等性,不可被缓存,适用于向服务器发送需要处理和存储的数据的场景。总之,应根据具体应用需求选择合适的协议,以实现高效可靠的网络通信。
2024-08-19 10:05:56
1050
原创 JVM 相关面试题汇总
如果一个类加载器收到了类加载的请求,它首先不会自己去加载这个类,而是把这个请求委派给父类加载器去完成,每一层的类加载器都是如此,这样所有的加载请求都会被传送到顶层的启动类加载器中,只有当父加载无法完成加载请求(它的搜索范围中没找到所需的类)时,子加载器才会尝试去加载类。新生代垃圾回收器一般采用的是复制算法,复制算法的优点是效率高,缺点是内存利用率低;老年代回收器一般采用的是标记-整理的算法进行垃圾回收。分代回收器有两个分区:老生代和新生代,新生代默认的空间占比总空间的 1/3,老生代的默认占比是 2/3。
2024-08-18 12:08:42
919
原创 JVM参数与Status
通过在 JVM 启动时配置该参数,JVM 会先访问所有分配的内存,让操作系统将内存真正分配给 JVM,以便后续顺畅访问。:设置Eden区与Survivor区的比值为8,则两个Survivor区与一个Eden区的比值为2:8,即一个Survivor区占整个年轻代的1/10。:垃圾收集线程与应用线程并行工作,若垃圾收集线程工作时老年代内存不足,最好提前启动 CMS 收集垃圾(CMS GC)。表示仅使用设定的回收阈值(如 75%),若不指定,JVM 仅在第一次使用设定值,后续会自动调整。默认值 92%较大。
2024-08-18 12:05:51
1129
原创 集合类浅谈
本文将深入探讨 HashMap 的底层原理、解决哈希冲突的方法、扩容机制以及与 ConcurrentHashMap 的区别等方面。红黑树是一种平衡二叉搜索树,它通过颜色标记和旋转操作来保持树的平衡,从而提供高效的插入、删除和查找操作。扩容会创建一个更大的数组,并将原来的键值对重新映射到新的数组中。需要注意的是,HashMap 是非线程安全的,如果在多线程环境下使用,需要进行适当的同步处理或使用线程安全的 ConcurrentHashMap。需要注意的是,在多线程环境下,如果需要线程安全的。
2024-08-17 16:14:38
632
原创 XXL-Job:分布式任务调度神器详解(附Cron表达式)
XXL-Job 作为一款强大的分布式任务调度框架,为我们提供了高效、可靠的任务管理解决方案。本文将详细介绍 XXL-Job 的使用,包括环境准备、任务创建、调度策略、执行流程、监控与管理、扩展与定制以及最佳实践等方面。通过本文的介绍,相信你已经对 XXL-Job 的使用有了深入的了解。在实际应用中,根据项目需求合理配置和使用 XXL-Job,可以提高系统的稳定性和任务执行效率。在实际使用时,最好参考所使用的具体工具或框架的文档来确保 cron 表达式的正确解析和执行。
2024-08-15 20:00:11
1177
原创 MySQL 数据库使用
请注意,删除数据库是不可逆的操作,需谨慎使用。索引是提高数据库查询性能的重要手段。事务用于保证数据的一致性和完整性。使用以下命令从备份文件中恢复数据。(字符串,最大长度 50)和。
2024-08-15 19:40:39
1340
原创 精通Java内存管理:提升应用性能的秘诀
在Java开发中,内存管理是一个至关重要的环节。本文将深入探讨Java内存模型、垃圾回收机制以及如何通过代码优化来提升应用性能。我们将分享一些实用的技巧和最佳实践,帮助你的Java应用运行得更加高效。
2024-07-14 10:33:46
136
原创 RabbitMQ整理
RabbitMQ是一个开源的消息代理和队列服务器,广泛用于应用程序之间的异步消息传递。它基于高级消息队列协议(AMQP)并支持多种消息协议。
2024-07-14 10:32:45
613
原创 Sentinel和hystric的运用详解
Sentinel 是由阿里巴巴开源的用于微服务架构的高可用流量控制组件,它通过提供流量控制、熔断降级、系统自适应保护等功能,帮助保障微服务的稳定性。
2024-07-13 08:13:31
1674
原创 ES(Elasticsearch)的使用
Elasticsearch(简称ES)是一个基于Lucene的搜索引擎,提供全文搜索功能,并且具有HTTP web接口和无模式的JSON文档。
2024-07-13 08:12:48
877
原创 MySQL与Redis优化
请注意,这些示例代码仅用于说明如何对MySQL和Redis进行优化,实际应用时需要根据具体的业务场景和需求进行调整。同时,优化措施的实施应谨慎进行,并在测试环境中充分测试以确保不会对现有系统造成负面影响。在进行优化时,需要根据实际业务场景和数据特点进行综合考虑,避免一刀切的优化策略。同时,优化过程中要持续监控性能指标,确保优化措施的有效性。好的,让我们通过一些示例代码来展示如何对MySQL和Redis进行优化。
2024-07-12 14:57:45
1444
原创 Feign的远程调用
Feign 是一个声明式的 Web 服务客户端,使得编写 Web 服务客户端变得更加简单。Feign 旨在简化 HTTP 客户端的编写,它整合了 Ribbon(提供客户端负载均衡)和 Hystrix(提供熔断机制),并且与 Spring Cloud 紧密集成,是 Spring Cloud 体系中的核心组件之一。
2024-07-12 14:52:36
349
原创 深入理解序列化与反序列化:概念、区别及应用场景
本文将探讨序列化与反序列化的概念、它们之间的区别,以及在不同应用场景下的实际应用。反序列化则是序列化的逆过程,即将序列化后的数据转换回原始的数据结构或对象。序列化与反序列化是数据交换的基础,选择合适的序列化格式对于系统的性能、安全性和兼容性至关重要。:在分布式系统中,序列化用于将对象转换为字节流,通过网络发送,然后在接收端进行反序列化。:应用程序状态或配置信息的持久化,通过序列化存储到磁盘,启动时反序列化以恢复状态。:RESTful API或SOAP服务处理请求和响应时,数据的序列化与反序列化。
2024-07-10 11:47:24
1107
原创 Void和返回值使用情况说明
在 Java 中,方法的返回类型定义了该方法执行完成后返回的数据类型。是一个特殊的返回类型,表示该方法不返回任何值。
2024-06-22 09:43:13
422
原创 项目分支命名
这些只是一些建议,实际的分支命名应该根据项目的具体需求和团队的约定来确定。在Java项目中,分支命名通常遵循一定的模式,以帮助团队成员理解每个分支的作用。,如果团队成员需要从主分支中创建自己的分支进行独立开发,可以使用。,如果项目中前端和后端代码分开管理,这个分支可以用于前端开发。,如果项目涉及多个团队或模块的集成,这个分支可以用于集成开发。,用于最终的发布前准备,可能包含最后的测试和调整。,用于修复bug或问题。,用于在特定时间点冻结代码,以便进行测试或发布。,这是项目的主线分支,包含了最新的稳定代码。
2024-05-24 11:19:01
751
2
原创 面试试题一
封装是面向对象编程的核心概念之一,它允许将对象的实现细节隐藏起来,只暴露出一个操作该对象的接口。它用于建立一个公共的层次结构,使得子类可以重用父类的代码,并且可以扩展或修改父类的行为。:客户端应当与它不需要的接口隔离,避免过多功能的聚合接口导致的耦合。SOLID是五个面向对象设计的基本原则的缩写,由Robert C. Martin提出,它们帮助开发者设计出松耦合、高内聚的系统。:一个类应该只负责一个功能领域中的相应职责,或者可以定义为“一个类只负责一个变化的原因”。这有助于降低类的复杂度,提高可维护性。
2024-05-12 17:54:00
1102
原创 Spring框架理解
在Spring框架中,DAO层是MVC(模型-视图-控制器)架构中的模型部分,它与Service层和Controller层协同工作,共同构建了一个分层的、模块化的应用程序。:通过使用ORM(对象关系映射)工具如Hibernate或JPA,DAO层可以实现对不同数据库技术的抽象,使得上层业务逻辑不必关心底层数据库的具体实现。:DAO层可以处理事务管理,确保数据的一致性和完整性。:通过将数据访问逻辑放在DAO层,可以使得业务逻辑(通常在Service层实现)与数据访问逻辑分离,提高代码的可维护性和可重用性。
2024-05-12 09:44:20
176
原创 JavaEE规范
这些规范定义了一组可重用的组件和API,以及一种用于构建和部署企业应用程序的体系结构。这些规范和标准使得开发人员能够构建出更加稳定、安全和可维护的企业应用程序,提高应用程序的性能和可靠性。同时,使用支持JavaEE规范的工具和平台,可以大大提高开发效率和质量,减少开发时间和成本。: 提供了一种管理事务的方法,确保事务的ACID属性(原子性、一致性、隔离性、持久性)。: 是一种设计模式,用于将应用程序分为模型层、视图层和控制层,以便于管理和开发。: 包含了微服务和云功能等特性,是对Java EE 7的扩展。
2024-05-08 09:03:25
501
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人