- 博客(560)
- 资源 (3)
- 收藏
- 关注
原创 Netty 简易指南
Netty 简易示例指南 本文介绍了两个Netty基础示例的实现:回写服务器和时间服务器。回写服务器展示了如何接收并处理客户端消息,支持丢弃、打印或原样返回消息的功能。时间服务器则演示了主动发送当前时间给客户端并关闭连接的场景。示例代码展示了Netty的核心组件使用方式,包括事件循环组(EventLoopGroup)、通道处理器(ChannelHandler)和管道(Pipeline)配置。通过Maven项目实现,这两个示例可以帮助开发者快速理解Netty的基本工作原理和开发模式。
2025-12-19 18:00:48
275
原创 JPA 学习笔记 8:与数据库交互
JPA与Hibernate核心概念摘要 本文介绍了JPA和Hibernate中与数据库交互的核心机制。主要内容包括: 持久化上下文:作为一级缓存,管理实体实例的三种状态(瞬时/持久/分离),确保数据一致性和自动脏检查,提高性能但需注意线程安全限制。 会话管理:演示了EntityManager/Session的创建和关闭方式,强调JPA标准与Hibernate原生API的区别。 事务处理:对比了传统事务管理方式与Hibernate提供的简洁API(inTransaction/fromTransaction),
2025-12-17 08:26:24
724
原创 JPA 学习笔记 7:高级内容
JPA高级特性摘要 本文介绍了JPA/Hibernate的一些高级特性: @Basic注解:用于标记持久化属性,通常可省略。可用于设置属性非NULL约束,推荐结合Hibernate Validator的@NotNull使用。 乐观锁实现:通过@Version注解添加版本控制字段,防止并发修改导致的数据覆盖问题。 枚举类型处理: @Enumerated默认存储枚举ordinal值 可通过EnumType.STRING存储枚举名称 也可自定义属性值存储 实体继承: 根实体需包含ID属性 可用于定义公共字段(如创
2025-12-17 08:25:05
553
原创 JPA 学习笔记 6:Fenix
JPA动态查询框架Fenix入门指南 本文介绍了如何在Spring Boot项目中整合Fenix框架实现JPA动态查询。主要内容包括: 基础配置:添加Fenix依赖和基础YAML配置,设置XML文件扫描路径和调试模式。 XML动态SQL:通过@QueryFenix注解将Repository方法映射到XML中定义的动态JPQL语句,支持条件判断和参数绑定。 Provider方式:使用SqlProvider类以编程方式构建动态查询条件。 增强接口:通过FenixJpaSpecificationExecutor接
2025-10-20 09:00:00
884
原创 JPA 学习笔记 5:Spring Data JPA
本文介绍了Spring Data JPA的基本使用,包括快速入门、Repository接口继承体系、自定义查询(@Query注解)以及分页和排序功能。主要内容有:1)通过继承Repository接口创建数据访问层;2)使用@Query注解实现自定义JPQL查询和原生SQL查询;3)利用@Modifying注解执行更新操作;4)通过CrudRepository和PagingAndSortingRepository接口获得基本的CRUD和分页功能。文章还提供了实体类定义、存储库接口实现和测试用例的完整代码示例。
2025-10-19 09:00:00
599
原创 JPA 学习笔记 4:JPQL
本文介绍了JPA中的二级缓存和JPQL查询语言。在二级缓存部分,说明了如何通过添加依赖、配置文件和注解来启用Hibernate二级缓存,减少跨Session的重复查询。JPQL部分则展示了基础的查询语法和使用方式,包括位置参数和命名参数的绑定,以及如何简化SELECT语句和部分属性查询。文章提供了完整的代码示例和配置说明,帮助开发者理解JPA的缓存机制和查询语言特性。
2025-10-18 09:00:00
735
原创 JPA 学习笔记 3:映射关联关系
这篇JPA学习笔记主要讲解了三种关联关系的映射方式: 单向多对一关联:通过@ManyToOne和@JoinColumn注解实现,强调先保存主表实体再保存从表实体的优化策略,以及查询、修改和删除操作。 单向一对多关联:使用@OneToMany注解,分析了新增时会产生额外UPDATE语句,默认懒加载查询,以及删除时的级联行为。 双向一对多关联:简要提及通过mappedBy属性实现双向关联。 文章通过具体代码示例展示了各种关联关系的实现方式,并详细说明了每种操作(增删改查)的底层SQL执行逻辑和优化建议。
2025-10-17 09:00:00
666
原创 JPA 学习笔记 2:API
本文介绍了JPA API的核心使用方法,包括通过Persistence获取EntityManagerFactory,以及EntityManager的关键操作。主要内容包括:使用find/getReference查询数据(后者采用懒加载)、persist保存数据、remove删除数据以及merge方法处理不同状态的实体对象。文中通过代码示例展示了各种API的使用场景和注意事项,如getReference的代理对象特性、persist对主键的限制、remove只能删除持久态实体等。merge方法根据实体状态的不
2025-10-16 09:00:00
1737
原创 JPA 学习笔记 1:开始
这篇JPA学习笔记介绍了JPA的基础配置和使用方法。主要内容包括: 快速开始:创建Maven项目并添加JPA相关依赖(Hibernate、MySQL驱动等) 配置persistence.xml文件,定义数据源和Hibernate属性 创建实体类Customer,使用@Entity、@Table、@Id、@GeneratedValue等注解 演示基本的CRUD操作流程 介绍常用注解: @Transient标记非持久化字段 @Temporal指定日期类型(已废弃,推荐使用LocalDate) @TableGen
2025-10-15 09:11:24
804
原创 Vue3 学习笔记 8:其它 API
本文介绍了 Vue3 中几个实用的 API 及其应用场景: ShallowRef/ShallowReactive:仅处理浅层响应式,适合不需要深度响应式的场景,可提升性能 Readonly/ShallowReadonly:创建只读响应式数据,前者全部只读,后者仅顶层只读 ToRaw:获取响应式数据的原始普通对象,适合需要传递给第三方库的场景 MarkRaw:标记对象为不可响应式,避免被转为响应式数据 这些 API 提供了更精细的响应式控制能力,开发者可根据实际需求选择使用,在保证功能的同时优化性能。
2025-10-11 09:00:00
638
原创 Vue3 学习笔记 7:组件通信
本文总结了 Vue3 中的组件通信方式:1) props 实现父子组件数据传递;2) 自定义事件实现子向父通信;3) mitt 库实现任意组件间通信;4) v-model 实现组件双向数据绑定。详细介绍了每种方式的具体实现方法,包括 props 传参、defineEmits 定义事件、mitt 的基本用法,以及 v-model 的实现原理和自定义命名方式。这些方法覆盖了 Vue3 中常见的组件通信需求。
2025-10-10 09:00:00
704
原创 Vue3 学习笔记 5:路由
本文介绍了Vue3路由的基本配置与使用。主要内容包括:安装vue-router并创建路由文件,配置路由规则和对应组件;在App.vue中使用RouterView和RouterLink实现路由跳转;通过active-class实现导航高亮效果;以及两种路由器工作模式(History和Hash)的区别。文章通过完整代码示例展示了如何实现一个包含标题、导航栏和内容展示区的路由应用,并说明了路由切换时组件的生命周期变化。
2025-10-09 08:35:01
724
原创 Spring data JPA 简易指南
本文介绍了Spring Data JPA的简易使用指南。首先通过创建Spring Boot项目并添加JPA及相关依赖完成准备工作。然后详细说明了实体类(Customer)的创建过程,包括必要的注解(@Entity、@Id等)和Lombok的使用注意事项。接着介绍了存储库(CustomerRepository)的创建方式,继承CrudRepository接口实现基础CRUD功能。最后提供了测试用例来验证存储库的增删改查操作。文章内容简洁实用,适合快速上手Spring Data JPA的基础使用。
2025-10-06 09:00:00
381
原创 Vue3 学习笔记 6:Pinia
本文介绍了Vue3状态管理库Pinia的基本使用。首先创建测试项目,包含两个组件(Count和LoveTalk)。然后安装Pinia并配置main.ts。重点演示了如何定义store(count.ts),管理state数据(sum),以及组件中读取和修改state的两种方式(直接访问和通过$state属性)。最后提到处理多个state数据时可以批量修改。文章提供了完整的代码示例,适合Pinia初学者快速上手。
2025-10-04 08:30:00
1325
原创 Vue3 学习笔记 4:生命周期
Vue3 学习笔记摘要 ref属性:用于获取DOM元素或组件实例,避免传统JS方式可能出现的ID冲突问题。通过ref()声明变量并与HTML标签绑定,可精确获取当前组件的DOM元素。组件实例需通过defineExpose暴露方法/数据才能在父组件中访问。 自定义类型:使用TypeScript接口定义对象类型(如Person),确保类型安全并提供IDE智能提示。支持泛型数组(Array<Person>或Person[])及自定义复合类型(如PersonList)。 props传参:父组件通过属性向
2025-10-03 08:30:00
988
原创 Vue3 学习笔记 3:计算属性
本文介绍了Vue3中的计算属性和监视功能。计算属性(computed)可以缓存计算结果,优化性能,并支持只读和可读写两种形式。监视功能(watch)可以监听ref定义的基本类型和对象类型数据的变化,通过回调函数获取新旧值,并支持手动停止监视。文章通过具体示例演示了如何实现单向/双向绑定、定义计算属性、处理对象类型数据变化等常见场景,帮助开发者更好地理解和使用Vue3的响应式特性。
2025-10-01 08:30:00
1882
原创 Vue3 学习笔记 2:组合式 API
Vue3学习笔记摘要:本文介绍了Vue3的组合式API与选项式API的区别,重点讲解了setup方法的使用方式及其语法糖形式。通过对比示例展示了如何将选项式代码转换为组合式写法,并说明响应式数据需要使用ref等特殊函数定义。文章还介绍了setup与生命周期钩子的执行顺序、与选项式API的共存问题,以及如何通过插件简化组件名称定义。最后比较了Vue2和Vue3在响应式数据处理上的差异。
2025-09-30 08:30:00
970
原创 Vue3 学习笔记 1:开始
早前可以通过vue-cli需要先安装 npm(NodeJS 的包管理器)。会开启一个交互式命令行界面:任何组件都可以在后期手动添加,这里只选择一个 TS(TypeScript)支持。依赖会安装在目录下。
2025-09-29 08:30:00
691
原创 RuoYi 学习笔记 3:二次开发
进行二次开发前最好先修改一下项目中的包名和子模块名称,可以使用一个工具——。将后端代码打包后使用修改器修改包名等:修改完后重新用 idea 打开加载,处理依赖后启动,以检查是否正常。
2025-09-28 08:33:03
833
原创 RuoYi 学习笔记 2:常用功能
若依实现了粗粒度(基于用户-角色)的权限控制以及细粒度(基于部门岗位)的权限控制。涉及的表结构:表关系:添加菜单并实现权限管理的案例可以观看。
2025-09-28 08:32:23
460
原创 RuoYi 学习笔记 1:开始
本文介绍了若依(RuoYi)框架的学习入门过程,主要包括环境准备和代码生成两部分。环境准备包括前后端代码下载、数据库配置、Redis配置及项目启动;代码生成部分演示了如何通过若依管理后台生成课程管理相关代码,并完成前后端代码的整合。文章提供了详细的配置步骤和参考资源链接,适合快速上手若依框架的开发。
2025-09-17 08:30:00
402
原创 Python 包管理工具 UV
本文介绍了Python包管理工具UV的安装与使用。UV作为pip的替代方案,具有速度快、支持多版本Python管理和虚拟环境等优势。文章详细讲解了UV的安装步骤、Python版本管理功能,以及如何运行带有依赖的脚本。在项目开发方面,介绍了UV如何初始化项目、管理依赖、配置启动项和版本控制。UV通过自动创建虚拟环境、简化依赖管理,为Python项目开发提供了便捷的工具链。
2025-09-16 08:30:00
1201
原创 MySQL 从入门到精通 18:读写分离
本文介绍了MySQL读写分离的两种实现方式:1)应用程序层控制,通过持久层框架(如MyBatis)自动路由读写请求;2)使用MyCat中间件实现,通过配置逻辑库和负载均衡策略自动分发SQL请求。详细演示了MyCat配置过程,包括schema定义、数据节点设置、负载均衡策略选择(推荐balance=1或3)。通过实际案例验证了MyCat正确路由读写请求到主从库,并指出一主一从架构的局限性,建议高可用场景采用双主双从模式。文中提供了完整的配置示例和测试方法。
2025-08-29 08:00:00
476
原创 MySQL 从入门到精通 17:分库分表
摘要: 本文介绍了MySQL分库分表技术及其实现工具MyCat。主要内容包括: 分库分表背景:解决单库性能瓶颈问题,包括IO瓶颈和CPU瓶颈 拆分原则:垂直分库(按业务)、垂直分表(按字段)和水平拆分(数据分散) MyCat介绍:作为分库分表中间件,无需修改应用代码即可实现数据分片 MyCat安装配置:详细说明安装步骤、环境要求和配置文件修改 架构说明:展示MyCat在应用层和数据库层之间的中间件位置 快速入门:提供配置示例,包括schema.xml和server.xml的配置方法
2025-08-28 08:00:00
1106
原创 MySQL 从入门到精通 16:主从复制
MySQL主从复制是一种将主库的数据变更同步到从库的技术,通过二进制日志传输和重做实现数据一致。配置步骤包括:主库设置server-id、创建复制账号、查看日志位置;从库配置server-id、指定主库连接信息并启动同步。主从复制能提高系统容灾性、实现读写分离和备份隔离。测试表明,主库的数据修改会实时同步到从库。该技术适用于高可用架构设计,能有效分担主库压力并提升系统可靠性。
2025-08-25 08:00:00
552
原创 MySQL 从入门到精通 15:日志
MySQL日志系统主要包括错误日志和二进制日志。错误日志默认开启,记录在/var/log/mysqld.log中,用于排查系统问题。二进制日志默认记录所有DDL和DML语句(不包含查询),用于数据恢复和主从复制,MySQL 8默认开启ROW格式,可通过mysqlbinlog工具查看日志内容。日志文件以binlog.000001格式递增存储,并维护索引文件binlog.index。二进制日志支持三种格式:STATEMENT(记录SQL语句)、ROW(记录行变更)和MIXED(混合模式)。
2025-08-24 08:00:00
1826
原创 MySQL 从入门到精通 14:MySQL 管理
MySQL管理工具与系统数据库 MySQL自带四个核心系统数据库:mysql存储运行时信息,information_schema提供元数据访问,performance_schema监控性能指标,sys包含性能调优视图。文章介绍了常用的MySQL管理工具:mysql命令行客户端可直接执行SQL语句;mysqladmin用于数据库管理操作;mysqlbinlog解析二进制日志;mysqlshow快速查找数据库对象并统计信息。这些工具为DBA提供了数据库监控、维护和性能优化的基础手段,通过命令行参数即可完成常见管
2025-08-22 08:00:00
352
原创 MySQL 从入门到精通 13:InnoDB 引擎
本文介绍了MySQL InnoDB存储引擎的核心架构和存储结构。InnoDB采用表空间(ibd文件)作为基本存储单元,包含段、区、页、行四个层级结构。其架构分为内存结构和磁盘结构两大部分:内存结构包括缓冲池(Buffer Pool)、更改缓冲区(Change Buffer)、自适应哈希索引和日志缓冲区;磁盘结构则包含系统表空间、独立表空间和通用表空间。文章详细说明了各组件的作用和配置参数,如缓冲池管理、日志刷新策略等,并提供了查看这些结构的SQL命令和Linux文件系统操作示例。
2025-08-21 08:00:00
742
原创 MySQL 从入门到精通 12:锁
MySQL锁机制分层:全局锁锁定所有表,用于备份但影响业务;表级锁包括读锁(共享)和写锁(独占);元数据锁自动管理表结构变更冲突。全局锁语法为FLUSH TABLES WITH READ LOCK/UNLOCK TABLES,表锁通过LOCK TABLES设置。InnoDB引擎可用--single-transaction参数避免全局锁备份问题。元数据锁分为共享读/写锁和排它锁,通过performance_schema.metadata_locks可查看锁状态。
2025-08-20 08:00:00
1017
原创 MySQL 从入门到精通 11:触发器
MySQL触发器是与表关联的数据库对象,可在数据操作前后自动执行SQL语句。本文介绍了触发器的创建、查看和删除语法,并通过实例演示了如何实现数据变更日志记录功能。重点说明了MySQL行级触发器的特点(每条记录变更都会触发),以及如何使用OLD和NEW引用变更前后的数据。示例包含插入、更新和删除三种触发器类型,展示了如何通过触发器自动记录用户表操作日志到日志表中。最后提供了相关学习资源参考。
2025-08-19 17:53:09
409
原创 MySQL 从入门到精通 10:存储过程
MySQL存储过程是一组预编译SQL语句的集合,可简化开发、减少数据传输。主要语法包括:创建(CREATE PROCEDURE)、调用(CALL)、查看(SHOW CREATE PROCEDURE)和删除(DROP PROCEDURE)。存储过程支持变量操作,包括系统变量(全局/会话)、用户自定义变量(@前缀)和局部变量(DECLARE声明)。还提供条件控制(IF-THEN-ELSE)等功能,能够有效封装业务逻辑,提高数据库操作效率。使用时需注意在命令行中修改结束符以避免语法错误。
2025-08-17 08:00:00
1668
原创 MySQL 从入门到精通 9:视图
本文介绍了MySQL视图的基本概念和操作。视图是虚拟表,数据来源于基础表,不实际存储数据。主要内容包括:1)视图创建语法(CREATE VIEW)和示例;2)视图查询方法(SHOW CREATE VIEW和SELECT);3)视图修改方式(OR REPLACE和ALTER VIEW);4)视图删除(DROP VIEW);5)CHECK OPTION的使用,包括CASCADED和LOCAL两种类型的区别,用于限制通过视图修改数据时必须满足视图条件。文章通过具体SQL示例演示了各种视图操作及其效果。
2025-08-16 08:00:00
802
原创 MySQL 从入门到精通 8:SQL 优化
本文介绍了MySQL数据插入和查询优化的关键技术。主要内容包括:1) 批量插入数据的方法,如批量插入、事务提交和主键顺序插入,以及使用LOAD命令高效导入大数据;2) 主键优化原则,包括控制主键长度、使用自增主键、避免自然主键等;3) 排序优化技巧,通过创建合适索引实现Using index排序,避免使用sort buffer;4) 分组查询优化,利用索引提升分组性能。这些优化方法能显著提高MySQL数据库的写入和查询效率。
2025-08-15 08:00:00
1042
原创 MySQL 从入门到精通 7:索引
本文介绍了MySQL索引的核心概念和实现原理。主要内容包括:索引的优缺点分析,B+树、Hash等不同索引结构的实现原理和适用场景,聚集索引与二级索引的区别,以及索引的创建和管理语法。还讲解了SQL性能分析方法,包括执行频率统计和慢查询日志的使用。文章通过图文详细解释了B+树的演进过程,对比了不同存储引擎对索引的支持情况,并提供了索引优化SQL查询的实用技巧。适合数据库开发者和DBA学习参考。
2025-08-14 08:00:00
695
原创 MySQL 从入门到精通 6:存储引擎
文章摘要:本文介绍了MySQL的存储引擎体系结构,重点讲解了InnoDB、MyISAM和Memory三种主要存储引擎的特点和区别。MySQL采用分层架构设计,存储引擎是基于表的实现方式。InnoDB作为默认引擎支持事务、行锁和外键;MyISAM适合查询密集型应用;Memory引擎将数据保存在内存中,适合临时表和缓存。文章还比较了各引擎的技术指标,并给出了选择建议:InnoDB适用于大多数业务场景,MyISAM和Memory引擎正逐渐被MongoDB和Redis替代。
2025-08-13 08:00:00
567
原创 MySQL 从入门到精通 5:事务
本文介绍了MySQL事务的基本概念与应用。通过银行转账案例演示了事务的必要性,讲解了如何手动控制事务的开启、提交和回滚。详细阐述了事务的四大特性(ACID):原子性、一致性、隔离性和持久性。分析了并发事务可能产生的三大问题(脏读、不可重复读和幻读),并对比了四种隔离级别及其解决不同问题的能力。最后提供了查看和修改事务隔离级别的方法。文章结合实例说明事务在保证数据一致性方面的重要作用,适合MySQL初学者理解事务机制。
2025-08-12 08:00:00
664
原创 MySQL 从入门到精通 4:多表查询
本文介绍了MySQL多表查询的核心概念和操作方式。主要内容包括: 表间关系:详细讲解了一对多/多对一、多对多和一对一关系的实现方式及典型应用场景。 多表查询技术: 内连接(显式和隐式实现) 外连接(左外连接和右外连接) 自连接(表与自身的连接查询) 联合查询(UNION和UNION ALL的区别) 子查询: 单值子查询作为条件 列值子查询用于IN条件 文章通过部门-员工、学生-课程等实际案例,配合SQL示例代码和可视化图表,系统性地讲解了多表查询的各种技术实现。
2025-08-11 08:00:00
738
原创 MySQL 从入门到精通 3:约束
摘要:本文介绍了MySQL中的主要约束类型及其应用,包括非空约束(NOT NULL)、唯一约束(UNIQUE)、主键约束(PRIMARY KEY)、默认约束(DEFAULT)、检查约束(CHECK)和外键约束(FOREIGN KEY)。通过用户表(user)创建示例详细展示了各约束的SQL实现方式,并演示了数据插入时的约束验证。重点讲解了外键约束的操作,包括添加、删除约束以及设置更新/删除行为(CASCADE、SET NULL等),通过员工表(emp)和部门表(dept)的关联示例说明外键在维护数据完整性方
2025-08-10 08:00:00
747
原创 MySQL 从入门到精通 2:函数
本文介绍了MySQL中常用的字符串、数值、日期和流程控制函数。字符串函数包括CONCAT拼接、大小写转换、填充和截取等;数值函数涵盖取整、取余、随机数和四舍五入;日期函数提供获取当前时间、提取年月日、日期加减和差值计算功能;流程函数则包含IF条件判断、IFNULL空值处理和CASE多条件分支等。每个函数都配有具体语法示例,如用LPAD生成六位随机数、用DATEDIFF计算日期差值和用CASE实现成绩评级等。这些函数能有效简化SQL查询中的数据处理逻辑。
2025-08-09 08:00:00
621
原创 MySQL 从入门到精通 1:SQL
本文介绍了MySQL数据库的基础操作,主要包括SQL分类、DDL(数据定义语言)和DML(数据操作语言)的使用。在DDL部分,详细讲解了数据库和表的创建、修改、删除等操作,以及MySQL支持的数据类型(数值、字符、时间类型)。DML部分介绍了数据的插入、更新等操作。文章还推荐了图形化工具DataGrip,并提供了相关安装和使用教程的参考资料。这些内容为MySQL初学者提供了全面的入门指导,涵盖了数据库管理的基本操作。
2025-08-08 08:00:00
637
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅