1.Mybatis组成 动态SQL Config配置 Mapper配置 2.核心源码分析 Configuration源码解析 SqlSessionFactory源码解析 SqlSession源码解析 SqlSessionManager源码解析 3.手写Mybatis框架 Mybatis是什么? Mybatis是一种半自动ORM框架,前身是iBatis,源于“Internet”和“abatis”的组合,除了POJO和映射关系之外,还需要编写SQL语句:   Mybatis映射三要素: POJO 映…
作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 同龄人的差距是从什么时候拉开的 同样的幼儿园.同样的小学.一样的书本.一样的课堂,有人学习好.有人学习差.不只是上学,几乎人生处处都是赛道,发令枪响起的时刻,也就把人生的差距拉开.编程开发这条路也是很长很宽,有人跑得快有人跑得慢.那么你是否想起过,这一点点的差距到遥不可及的距离,是从哪一天开始的.摸摸肚子的肉,看看远处的路,别人讲的是故事,你想起的都是事故.…
-------前篇:手写DAO框架(二)-开发前的最后准备--------- 前言 上一篇主要是温习了一下基础知识,然后将整个项目按照模块进行了划分.因为是个人项目,一个人开发,本人采用了自底向上的开发. 本篇会介绍连接层的代码,包括三部分:pom配置.数据库连接和数据库连接池. pom配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSc…
Angular8正式发布了,Java13再过几个月也要发布了,技术迭代这么快,框架的复杂度越来越大,但是原理是基本不变的.所以沉下心看清代码本质很重要,这次给大家带来的是手写RPC框架. 完整代码以及说明文档,点我跳跃~ 1. 什么是RPC? RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据. RPC框架有很多,比较知名的如阿里的Dubbo.goog…
版权声明:本文为博客园博主「水木桶」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明.原文链接:https://www.cnblogs.com/shuimutong/p/11408219.html 背景 手写DAO框架系列前后更新了5篇文章,外加1篇使用示例,GDAO框架至此已经初具雏形,简单的使用不成问题.接下来就是对框架进行不断的优化. 顺便说一下性能 手写DAO框架(六)-后续之框架使用示例 此篇文章对GDAO的性能较少提及,这里就简单的记载一下,后续有机会…
web应用 '''通过浏览器访问的应用程序!!!''' 1.两种模式c/s b/s B/S:browser---------------->server 2.web应用程序的有点 2.1 只需要一个浏览器即可 2.2 节省资源 2.3 他们不需要更新,因为所有新的特性都在服务器上执行 3.web应用程序的缺点 # 特别依赖服务端程序的健壮性,言外之意就是一旦服务端宕机,客户端立马宕机 4.web框架 # 框架就是别人写好的模版,我们只需要在模版中固定的位置书写代码即可 # Django框架就是一…
-------前篇:手写DAO框架(三)-数据库连接--------- 前言 通过上一篇写的方法,可以灵活的获取.释放数据库连接,拿到连接之后,我们就可以执行sql了!所以,本篇介绍的就是SQL执行器. SQL执行器主要功能就是执行sql,返回结果.如新增.更新.删除.查询,其中也涉及到了事务的开启.关闭.回滚. 这一层的定位是为接下来的DAO层提供底层支持,同时也支持自行编写SQL进行直接调用. 涉及技术 本篇主要涉及技术有:泛型.匿名内部类. 泛型 说到泛型,先简单的对比一下python和j…
一.背景 书接手写MQ框架(二)-服务端实现  ,前面介绍了服务端的实现.但是具体使用框架过程中,用户肯定是以客户端的形式跟服务端打交道的.客户端的好坏直接影响了框架使用的便利性. 虽然框架目前是通过web的形式提供功能的,但是某的目标其实是通过socket实现,所以不仅需要有客户端,还要包装一下,让用户在使用过程中不需要关心服务端是如何实现的. 简单来说,就是客户端使用必须方便. 二.客户端实现 1.HttpUtil 目前客户端的核心功能是HttpUtil这个类,使用httpClient实现的…
-------前篇:手写DAO框架(四)-SQL执行--------- 前言 通过上一篇,可以通过传入sql和对应的参数,可以执行sql并返回结果.但是对于一个DAO框架来说,要尽量的面向对象编程,也就是要实现ORM功能.所以本篇主要介绍DAO层的实现,主要是实现ORM. 主要涉及技术 反射 反射 Class<T> entityClass = (Class<T>) ((ParameterizedType)this.getClass().getGenericSuperclass())…
一.背景 书接上文手写MQ框架(三)-客户端实现,前面通过web的形式实现了mq的服务端和客户端,现在计划使用netty来改造一下.前段时间学习了一下netty的使用(https://www.w3cschool.cn/netty4userguide/52ki1iey.html).大概有一些想法. netty封装了socket的使用,我们通过简单的调用即可构建高性能的网络应用.我计划采用以下例子来对gmq进行改造. 本文主要参考:https://www.w3cschool.cn/netty4use…