MyBatis
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。本文简单记录一些关于MyBatis的问题。
参考文章:
Maven基础&MyBatis
【spring boot】 mybatis配置双数据源/多数据源
Mybatis概述Mybatis、持久层、框架简介MyBatis中文网
MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发
MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github
官网:mybatis – MyBatis 3 | 简介
持久层:
负责将数据保存到数据库的 ...
构建工具Maven
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
参考文章:Maven基础&MyBatis
Maven简介Maven是专门用于管理和构建Java项目的工具。
传统项目管理缺点:
jar包版本不统一、不兼容
工程升级维护过程操作繁琐
Maven介绍:
Maven 的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)。
maven是用java语言写的,它管理的项目都以面对对象形式设计,最终把一个项目看成一个对象,即POM。
**POM:**(Project Object Model):项目对象模型
作用和功能作用:
项目构建:提供标准的、跨平台的自动化项目构建方式
依赖管 ...
设计模式-行为型模式
设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four (GoF) 的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,分别为创建型模式、结构型模式和行为型模式。
行为型模式(Behavioral Patterns):主要用于描述对象之间的通信和责任分配,包括多个不同的模式,如“策略模式”、“模板方法模式”、“观察者模式”、“迭代器模式”、“职责链模式”、“命令模式”、“访问者模式”、“备忘录模式”和“解释器模式”等。这些模式通常用于实现不同的算法、流程和通信方式,以实现系统的更高灵活性和可维护性。
参考文章:
设计模式——模板模式
设计模式——观察者模式
设计模式——责任链模式
模板模式基本介绍
模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行
简单说,模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改 ...
设计模式-结构型模式
设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four (GoF) 的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,分别为创建型模式、结构型模式和行为型模式。
结构型模式(Structural Patterns):主要用于描述对象之间的组合关系,包括多个不同的模式,如“代理模式”、“适配器模式”、“桥接模式”、“装饰者模式”、“外观模式”、“享元模式”和“组合模式”等。这些模式可以帮助我们更好地设计程序结构,提高代码灵活性和可维护性。
参考文章:
设计模式——代理模式
【设计模式】结合Tomcat源码,分析外观模式/门面模式的特性和应用场景
代理模式代理模式的基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象
代理模式是结构型设计模式(用于描述对象之间的组合关系)。
好处:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能
被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象(代理时对目标对象进行安全控制)
我们并不希望客户端直接 ...
设计模式-创建型模式
设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four (GoF) 的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,分别为创建型模式、结构型模式和行为型模式。
创建型模式(Creational Patterns):主要用于对象的创建,包括多个不同的模式,如工厂方法模式、抽象工厂模式、建造者模式、单例模式和原型模式等。这些模式都有助于降低系统耦合度,并提高代码的可重用性和可扩展性。
参考文章:
设计模式——设计模式介绍和单例设计模式
设计模式——工厂模式
设计模式——原型模式
【设计模式】结合StringBuilder源码,探析建造者模式的特性和应用场景
单例模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)
比如 Hibernate 的 SessionFactory,它充当数据存储源的代理,并负责创建 Session 对象。SessionFactory 并不是轻量级的,一般情况下,一个项目通常只需要 ...
设计模式七大原则
软件设计模式的七大核心原则包括单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则和合成复用原则,这些原则构成了面向对象设计的基石。
参考原文:
设计模式——设计模式简介和七大原则
设计模式七大原则
单一职责原则(Single Responsibility Principle)
对类来说,即一个类应该只负责一项职责。对接口来说,接口设计要符合单一职责原则,粒度越小通用性就越好。
开闭原则(Open Close Principle)
对扩展开放,对修改关闭。
里氏代换原则(Liskov Substitution Principle)
只有当衍生类可替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。
依赖倒转原则(Dependence Inversion Principle)
这个是开闭原则的基础,对接口编程,依赖于抽象而不依赖于具体。
接口隔离原则(Interface Segregation Principle)
使用多个隔离的接口来降低耦合度。
迪米特法则(最少知道原则)(Demeter Pr ...
设计模式介绍及简单实现
设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four (GoF) 的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,分别为创建型模式、结构型模式和行为型模式。
参考文章:
设计模式——设计模式简介和七大原则
如何优雅的将设计模式运用到实际项目中去?
推荐文章:设计模式篇(2025版)
设计模式介绍概述
设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验。模式不是代码,而是某类问题的通用解决方案,设计模式(Design pattern)代表了最佳实践。
设计模式的本质提高软件的维护性、通用性和扩展性,并降低软件的复杂度
《Design Patterns - Elements of Reusable Object-Oriented Software》(设计模式 - 可复用的面向对象软件元素)是经典的书,该书首次提到了软件开发中设计模式的概念。作者是 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides Design,合称 GOF( ...
阿里规约
阿里巴巴 的代码规范( 阿里规约 )主要包含 Java 、 C++ 、 Python 等编程语言的编码规范。最新版本可通过其 GitHub 仓库获取。
参考文章:
【阿里规约】阿里开发手册解读——命名规范篇
【阿里规约】阿里开发手册解读——代码格式篇
【阿里规约】阿里开发手册解读——数据库和ORM篇
命名规范包名
统一小写:例如商品库存包com.example.product.stock,而不是com.example.productStock
分隔符间单词必须单语义:例如商品库存包com.example.product.stock,而不是com.example.product_stock、com.example.product-stock
参考:
【强制】 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用 单数 形式,但是类名如果有复数含义,类名可以使用复数形式。正例: 应用工具类包名为 com.alibaba.ai.util、类名为 MessageUtils(此规则参考 spring 的框架结构)
类名普通类和方法
驼峰命名:例如UserSer ...
MySQL数据库-表设计优化、读写分离与分库分表
数据库系统优化是通过调整数据库结构、参数及应用程序以提升系统性能的技术,核心目标是将低效SQL语句转换为高效等效语句。人工智能自动优化技术通过重写SQL语句实现性能提升。优化技术演变历经三代工具:第一代解析执行计划,第二代推荐索引优化,第三代提出语法改进建议。优化策略贯穿数据库生命周期,其中设计阶段优化成本最低且收益最大。
参考文章:
【MySQL调优】如何进行MySQL调优?从参数,数据,建模,索引,SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
表设计优化混合业务分表、冷热数据分表例如把一个大的任务表,分离成任务表和历史任务表,任务表里任务完成后移动到历史任务表。任务表是热数据,历史任务表是冷数据,提高查询性能。
混合业务分表:
根据业务逻辑,将不同的业务数据分开存储在不同的表中。每个业务模块的数据单独存储,减少了单表的大小和查询的复杂度。
示例:将一个大的日志表,拆分成交易日志表、操作日志表、登录日志表等。这些要在项目 ...
MySQL数据库-查询优化
数据库系统优化是通过调整数据库结构、参数及应用程序以提升系统性能的技术,核心目标是将低效SQL语句转换为高效等效语句。人工智能自动优化技术通过重写SQL语句实现性能提升。优化技术演变历经三代工具:第一代解析执行计划,第二代推荐索引优化,第三代提出语法改进建议。优化策略贯穿数据库生命周期,其中设计阶段优化成本最低且收益最大。
参考文章:
【MySQL调优】如何进行MySQL调优?从参数,数据,建模,索引,SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
MySQL高级篇——关联查询和子查询优化
MySQL高级篇——排序、分组、分页优化
数据库引擎查询流程通用查询流程
解析 SQL 语句:数据库引擎先将 SQL 语句解析成内部的执行计划,包括了查询哪些数据表、使用哪些索引、如何连接多个数据表等信息。
优化查询计划:数据库引擎对内部的执行计划进行优化,根据查询的复杂度、数据量和系统资源等因素,选择最优的执行计划。
执行查询计划:数据库引擎根据执行计划,通过 I/O 操作读取数据表的数据,进行数据过滤、排序、分组等操作,最终返回结果集。
缓存查询结果:如果查询结果集比 ...





