- 博客(24)
- 收藏
- 关注
原创 知识汇总
Java 设计模式 数据结构和算法 Mybatis Spring Spring MVC Spring Boot Spring Data Spring Cloud Nginx Tomcat Zookeeper MySql
2021-01-15 22:47:07
182
原创 Mybatis 配置文件
1.3 Mybatis 核心配置文件层级关系1.4 MyBatis 常用配置解析environments 标签数据库环境的配置,⽀持多环境配置事务管理器(transactionManager)类型有两种:JDBC: 这个配置就是直接使用了 JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。MANAGED: 这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 J2EE 应用服务器的上下文)。 默认情况下它会关闭连接,然而一些容
2021-03-31 21:04:55
337
原创 Mybatis 基本应用
1. 快速搭建MyBatis官方地址:https://mybatis.org/mybatis-3/zh/index.html1.1 mybatis 搭建步骤添加 MyBatis 的坐标创建 user 数据表编写 User 实体类编写映射文件 UserMapper.xml编写核心文件 SqlMapConfig.xml编写测试类相关代码详见:1.2 MyBatis 的映射文件概述...
2021-03-30 23:43:28
182
原创 Mybatis 相关概念
1. 对象/关系数据库映射(ORM)ORM 全称 Object/Relation Mapping:表示对象-关系映射的缩写ORM 完成面向对象的编程语言到关系数据库的映射。当 ORM 框架完成映射后,程序员既可以利用面向对象程序设计语言的简单易用性,又可以利用关系数据库的技术优势。ORM 把关系数据库包装成面向对象的模型。ORM 框架 是面向对象设计语言与关系数据库发展不同步时的中间解决方案。采用 ORM 框架后,应用程序不再直接访问底层数据库,而是以面向对象的方式来操作持久化对象,而 ORM 框架
2021-03-30 09:45:40
208
原创 简易版 Mybatis 实现
1. JDBC 操作存在的问题package com.study;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;/** * JDBC 测试 * @author xiaosong * @since 2021/03/26 */public class JdbcTest { public st
2021-03-30 09:25:35
193
原创 MySQL 运行机制
1. 运行机制图解2. 运行过程2.1 建立连接(Connectors & Connection Pool)通过 客户端/服务器通信协议 与 MySQL 建立连接。MySQL 客户端与服务端的通信方式是“ 半双工 ”。对于每一个 MySQL 的连接,时刻都有一个线程状态来标识这个连接正在做什么。通讯机制:全双工:能同时发送和接收数据,例如平时打电话。半双工:指的某一时刻,要么发送数据,要么接收数据,不能同时。例如早期对讲机单工:只能发送数据或只能接收数据。例如单行道线程状态:
2021-03-08 14:15:20
276
原创 MySQL 内容汇总
介绍内容链接MySQL 起源和分支https://blog.youkuaiyun.com/m0_54485604/article/details/113881411MySQL 应用架构演变https://blog.youkuaiyun.com/m0_54485604/article/details/114155879 MySQL 架构原理内容链接MySQL 体系架构https://blog.youkuaiyun.com/m0_54485604/article/detail..
2021-03-08 10:23:16
152
原创 MySQL 体系架构
MySQL Server 架构自顶向下大致可以分 网络连接层、服务层、存储引擎层 和 系统文件层。1. 网络连接层客户端连接器(Client Connectors):提供与MySQL服务器建立的支持。目前几乎支持所有主流的服务端编程技术,例如常见的 Java、C、Python、.NET等,它们通过各自API技术与 MySQL 建立连接。2. 服务层(MySQL Server)服务层是MySQL Server的核心,主要包含系统管理和控制工具、连接池、SQL接口、解析器、查询优化器和缓存六个部.
2021-02-27 00:48:37
132
原创 MySQL 应用架构演变
1. 单机单库一个简单的小型网站或者应用背后的架构可以非常简单, 数据存储只需要一个 MySQL Instance 就能满足数据读取和写入需求(这里忽略掉了数据备份的实例),处于这个的阶段系统,一般会把所有的信息存到一个 MySQL Instance 里面。存在的问题:数据量太大,超出一台服务器承受读写操作量太大,超出一台服务器承受一台服务器挂了,应用也会挂掉(可用性差)2. 主从架构主要解决架构 单机单库 下的高可用和读扩展问题,通过给 Instance 挂载从库解决读取的压力,主库
2021-02-26 22:53:18
236
原创 MySQL 起源和分支
1. 简介MySQL 是最流行的关系型数据库软件之一,由于其体积小、速度快、开源免费、简单易用、维护成本低等,在集群架构中易于扩展、高可用,因此深受开发者和企业的欢迎。数据库流行度排行 如下:Oracle 和 MySQL 是世界市场占比最高的两种数据库。IOE:IBM的服务器,Oracle数据库,EMC存储设备。都是有钱的公司产品采购,例如银行、电信、石油、证券等大企业。Oracle:垄断,有钱的大企业采用,互联网企业之外使用第一。MySQL:互联网高速发展,互联网企业使用第一。2. MyS
2021-02-20 13:39:53
415
1
原创 六大原则之里氏替换
1. 里氏替换原则的介绍里氏替换原则(Liskov Substitution Principle)在 1988 年,由麻省理工学院的以为姓里的女士提出的。如果对每个类型为 T1 的对象 o1,都有类型为 T2 的对象 o2,使得以 T1 定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。换句话说,所有引用基类的地方必须能透明地使用其子类的对象。在使用继承时,遵循里氏替换原则,在子类中尽量不要重写父类的方法
2021-02-08 17:52:47
512
1
原创 六大原则之迪米特法则
1. 迪米特法则介绍一个对象应该对其他对象保持最少的了解类与类关系越密切,耦合度越大迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的 public 方法,不对外泄露任何信息迪米特法则还有个更简单的定义:只与直接的朋友通信直接的朋友:每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系。耦合的方式很多,依
2021-02-08 17:43:25
321
原创 六大原则之依赖倒转(倒置)原则
1. 依赖倒转(倒置)原则 介绍高层模块不应该依赖低层模块,二者都应该依赖其抽象抽象不应该依赖细节,细节应该依赖抽象依赖倒转(倒置)的中心思想是面向接口编程依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在 java 中,抽象指的是接口或抽象类,细节就是具体的实现类使用接口或抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成2. 传统的调用方法pack
2021-02-08 15:05:52
3211
3
原创 数据结构:栈
1. 栈的定义限定仅在表尾进行插入和删除操作的线性表栈顶(Top):操作数据的一端,即表尾栈底(Bottom):线性表的另一端,即表头2. 栈的特点LIFO(Last In First Out),后进先出3. 基本操作进栈:push(),在栈顶插入元素,入栈、压栈出栈:pop(),从栈顶删除数据判断空:isEmpty()2. 栈的实现package com.study;/** * 栈:后进先出 * @author xiaosong * @version 1.0
2021-02-03 15:41:55
143
原创 数据结构:链表
1. 链表的特点数据存储不要求连续空间,不限制容量数据的逻辑顺序通过指针链接次序实现从链表头部依次访问后面的节点在链表表头插入数据的时间复杂度是O(1)
2021-02-03 07:27:04
148
原创 六大原则之接口隔离原则
1. 接口隔离原则介绍客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上2. 传统调用方法package com.study;public class Segregation { public static void main(String[] args) { A a = new A(); a.depend1(new B()); // A 类通过接口去依赖 B 类 a.depend2(new B());
2021-02-02 16:49:16
383
原创 Java 将网络图片以 Base64 的方式返回给前端
前言:与前台对接,前台开发人员根据路径下载企业微信二维码未成功,需要后台协助将图片转成 base64 返回package com.study;import java.io.ByteArrayOutputStream;import java.io.DataInputStream;import java.io.IOException;import java.net.HttpURLConnection;import java.net.URL;import sun.misc.BASE64Encod
2021-02-02 12:30:50
2435
原创 六大原则之开闭原则
1. 开闭原则的介绍开闭原则(Open Closed Principle)是编程中最基础、最重要设计原则一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。2. 违反开闭原则示例package com.study;public class Ocp {
2021-02-02 10:23:59
20622
5
原创 六大原则之单一职责
1. 单一职责介绍单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。例如:类 A 负责两个不同职责:职责 1,职责 2。当职责 1 需求变更而改变 A 时,可能造成职责 2 执行错误,所以需要将类 A 的粒度分解为 A1,A22. 单一职责的案例说明2.1 方式一package com.study;/** * 单一职责 * @author xiaoson
2021-02-01 10:23:14
929
原创 设计模式简介
设计模式解决的问题软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。设计模式的目的编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有以下特性:代码重用性 (即:相同功能的代码,不用多次编写)可读性 (即:编程规范性, 便于其他程序员的阅读和理解)可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)可靠性 (即:当我们增加新的功能后,
2021-01-28 10:20:52
176
原创 UML类图相关介绍
1. UML 基本介绍UML——Unified Modeling Language, UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果UML 本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等,如图:2. UML 图的分类用例图(use case)静态结构图:类图、对象图、包图、组件图、部署图动态行为图:交互图(时序图与协作图
2021-01-27 11:37:16
523
原创 数据结构和算法内容汇总
线性表哈希表及字符串 [数组:实现整数的数字反转](https://leetcode-cn.com/problems/reverse-integer/solution/shu-xue-si-wei-by-xiaosonglab-c8qh/) [颠倒二进制位](https://leetcode-cn.com/problems/reverse-bits/solution/li-yong-wei-yi-de-fang-fa-jin-xing-fan-z-01zl/)
2021-01-15 23:31:21
182
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅