MyBatis 源码阅读 -- 基础功能篇 1. exceptions2. reflection3. annotations 和 lang4. type5. io6. logging7. parsing
MyBatis 源码阅读 -- 启航概览篇 1 mybatis1.1 ORM框架传统的数据库连接,软件程序和数据库交互的过程需要建立连接、拼装和执行SQL、转化操作结果等步骤,相对比较繁琐。拼装SQL和转化结果十分繁琐。面向对象是在软件工程原则(如聚合、封装)的基础上发展起来的,而关系型数据库则是在数学理论(集合代数等)的基础上发展起来的,两者并不是完全匹配的,它们中间需要信息的转化。这样的转化称为对象关系映射(Object Relational Mapping,简称 ORM、O/RM或 O/R mapping)。ORM 会.
SpringBoot 1. 自动装配1. 1 @SpringBootApplication@SpringBootApplication的启动类注解主要包括:@SpringBootConfiguration:实质是@Configuration,代表当前是一个配置类 @EnableAutoConfiguration:自动装配的核心 @ComponentScan:指定扫描路径,Spring注解@SpringBootConfiguration@EnableAutoConfiguration@Component..
索引,性能分析及优化 1. 索引的分类MySQL的索引包括普通索引、唯一性索引、单列索引、多列索引、全文索引和空间索引等。从功能逻辑上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。 按照物理实现方式 ,索引可以分为 2 种:聚簇索引和非聚簇索引。 按照作用字段个数进行划分,分成单列索引和联合索引。普通索引在创建普通索引时,不附加任何限制条件,只是用于提高查询效率。这类索引可以创建在任何数据类型中,其值是否唯一和非空,是由字段本身的完整性约束条件决定。例如,在表student的字段n
IDEA, VS-常用插件 1. IDEA1.1 Lombok1.2MyBatisX2. Visual Studio Code2.1 Auto Close Tag2.2 Auto Rename Tag2.3 Chinese2.4 ESLint2.5 HTML CSS Support2.6 HTML Snippets2.7 JavaScript(ES6) code snippets2.8 live server2.9 open in browser2.10 Vetur
MySQL 1. 流程1)mysql启动以后,初始化模块就从系统配置文件中读取系统参数和命令参数,初始化整个系统,同时存储引擎也会启动;2)初始化结束后,连接管理模块会监听客户端的连接请求,并将连接请求转发给线程管理模块去请求一个连接线程;3)线程模块接到请求后会调用用户模块进行授权检查,通过授权以后会检查是否又空闲线程,如果有取出并与客户端连接,如果没有则新建立建立一个线程与客户端连接;4)mysql请求分为两种,一种是需要命令解析和分发才能执行,另一种可以直接执行;不管哪种,如果开启了日志,那么日志
JVM, GC, OOM, 性能监控 JVM内存结构Java8以后的JVMGC作用域常见的垃圾回收算法引用计数复制标记清除标记整理JVM+GC1、JVM垃圾回收的时候如何确定垃圾?是否知道什么是 GC Roots什么是垃圾?简单的说就是内存中已经不再被使用到的空间就是垃圾要进行垃圾回收,如何判断一个对象是否可以被回收?引用计数法Java中,引用和对象是有关联的。如果要操作对象则必须用引用进行因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。..
JUC, Lock, ThreadPool 1. JUC多线程及并发包1.1 谈谈你对volatile的理解 volatile是Java虚拟机提供的轻量级的同步机制(保证内存可见性,不保证原子性,禁止指令重排) 可见性:可能存在一个线程AAA修改了共享变量X的值还未写回主内存中时,另外一个线程BBB又对内存中的共享变量X进行操作,但此时AAA线程工作内存中的共享变量X对线程B来说并不可见。这种工作内存与主内存同步延迟现象就造成了可见性问题。(volatile保证了变量同步,解决了可见性问题)。原子性:number++;
Linux中MySQL配置文件my.cnf参数优化 MySQL主要配置文件linux配置路径:/etc/my.cnfWindows路径:C:\Software\Code\mysql-5.7.26-winx64\my.ini1. 二进制日志log-bin作用:主从复制配置:[mysqld]linux: log-bin = /data/mysql-binwindows: log - bin=C:/Software/Code/mysql-5.7.26-winx64/data/mysqlbin2. 错误日志 log-err.
Maven配置阿里云镜像和配置jdk1.8编译项目--本地安装配置git--使用码云初始化项目 1. 初始化配置git1.1 下载git:https://git-scm.com1.2 配置git: 进入git bash# 配置用户名git config --global user.name "username"# 配置邮箱git config --global user.mail "username@email.com"1.3 配置ssh免密登录$ ssh-keygen -t rsa -C "username@mail.com"连续3次回车eg:$ ssh.
Centos7.8下安装Docker,MySQL5.7,Redis,Elasticsearch7.4.2,Nginx 1. 安装DockerCentos7下,Docker安装文档https://docs.docker.com/engine/install/centos/1.1 卸载系统之前的Docker$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ d.
CoreJava -- 注解和反射 1. 注解package com.okgo.annotation;import java.lang.annotation.*;//测试原注解@MyAnnotationpublic class Test01 { public void test() { }}//定义一个注解//Target 表示我们的注解可以用在哪些地方@Target(value = {ElementType.METHOD,ElementType.TYPE})//Retention