插件允许对Mybatis的四大对象(Executor、ParameterHandler、ResultSetHandler、StatementHandler)进行拦截 问题 Mybatis插件的注册顺序与调用顺序的关系? 使用 在讲源码之前,先看看如何自定义插件。 mybatis-demo,官方文档 创建插件类 自定义插件类需要实现Interceptor // 注解配置需要拦截的类以及方法 @Intercepts({ @Signature(type = StatementHandler.class, method =…

2022年6月16日 0条评论 327点热度 0人点赞 王谷雨 阅读全文

问题 Mybatis四大对象的创建顺序? Mybatis插件的执行顺序? 工程创建 环境:Mybatis(3.5.9) mybatis-demo,参考官方文档 简单示例 这里只放出main方法的示例,其余类请看demo工程。 public static void main(String[] args) throws Exception { // 配置文件路径 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.get…

2022年6月16日 0条评论 406点热度 0人点赞 王谷雨 阅读全文

读写Channel(READ)的创建和注册 在NioEventLoop#run中提到,当有IO事件时,会调用processSelectedKeys方法来处理。 当客户端连接服务端,会触发服务端的ACCEPT事件,创建负责READ事件的channel并注册到workerGroup中 跟踪processSelectedKeys的调用 NioEventLoop#processSelectedKeys() --> NioEventLoop#processSelectedKeysOptimized() --> N…

2022年6月16日 0条评论 345点热度 0人点赞 王谷雨 阅读全文

先看看EventLoop类图 我们在Netty第二篇文章中的代码中,看到有多次用到eventLoop.execute()方法,这个方法就是EventLoop开启线程执行任务的关键,跟踪进去看看 // 类SingleThreadEventExecutor SingleThreadEventExecutor#execute(Runnable task) --> SingleThreadEventExecutor#execute0(@Schedule Runnable task) --> private vo…

2022年6月16日 0条评论 374点热度 1人点赞 王谷雨 阅读全文

简单Echo案例 注释版代码地址:netty 代码是netty的源码,我添加了自己理解的中文注释。 了解了Netty的线程模型和组件之后,我们先看看如何写一个简单的Echo案例,后续的源码讲解都基于此案例。以下是服务端的代码: public final class MyEchoServer { static final int PORT = Integer.parseInt(System.getProperty("port", "8007")); public static …

2022年6月16日 0条评论 294点热度 0人点赞 王谷雨 阅读全文

前置条件 源码版本netty4.1 了解Java NIO、Reactor模型和Netty的基本使用。 解释一下: Java NIO:了解BIO和NIO的区别以及Java NIO基础API的使用 Reactor模型:Netty是基于Netty模型对Java NIO封装的框架 Netty的基本使用:先学会基本使用再看源码,这样可以带着看源码,事半功倍(这个api为啥这么样设计,这个对象又是在什么时候生成的巴拉巴拉) Netty中的Reactor模型 Netty的线程模型参考了Reactor主从多线程模型,但又不完全一样…

2022年6月16日 0条评论 341点热度 0人点赞 王谷雨 阅读全文

锁是数据库系统区别于文件系统的一个关键特性。锁机制用于管理对共享资源的并发访问。 innodb_lock_wait_timeout:锁的等待时间(默认50秒) 表锁 MyISAM在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执行更新操作(UPDATE、DELETE、INSERT等)前,会自动给涉及的表加写锁。 LOCK TABLE XXX; UNLOCK TABLES; -- 行锁语法(S锁) select ... LOCK IN SHARE MODE 注:MyISAM锁粒度到表级别,InnoDb…

2022年5月3日 0条评论 413点热度 0人点赞 王谷雨 阅读全文

EXPLAIN 首先祭出官方文档(这是5.7的,请自行选择版本): Understanding the Query Execution Plan 英文不想看,就看这篇吧: ****全网最全 | MySQL EXPLAIN 完全解读**** PROFILING PROFILING在未来版本会废弃,不建议使用。官方文档: ****SHOW PROFILE Statement**** 官方推荐的替代方式: Query Profiling Using Performance Schema 如果安装了navicat(版本15…

2022年5月3日 0条评论 391点热度 0人点赞 王谷雨 阅读全文

本篇为备份篇。 因为装的东西不多,所以需要备份的只有mysql和wordpress的文件夹。 备份mysql mysql备份命令 使用mysqldump命令,格式如下: # 这是格式 mysqldump -u{username} -p{dbrootpwd} --databases {DBname}>{DumpFile} # 这是例子 mysqldump -uroot -proot --databases wordpress > /home/backup.sql 使用${}代表的是变量,请自行替换 userna…

2022年4月25日 0条评论 468点热度 0人点赞 王谷雨 阅读全文

本篇为安装篇。 基于centos 7.9,大部分东西使用docker安装。 软件列表:docker + mysql + wordpress 安装docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo yum list docker-ce --showduplicates …

2022年4月19日 0条评论 561点热度 0人点赞 王谷雨 阅读全文
134567