作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获!…
作者:小傅哥 系列:https://bugstack.cn/md/spring/develop-mybatis/2022-03-20-%E7%AC%AC1%E7%AB%A0%EF%BC%9A%E5%BC%80%E7%AF%87%E4%BB%8B%E7%BB%8D%EF%BC%8C%E6%89%8B%…
1.Mybatis组成 动态SQL Config配置 Mapper配置 2.核心源码分析 Configuration源码解析 SqlSessionFactory源码解析 SqlSession源码解析 SqlSessionManager源码解析 3.手写Mybatis框架 Mybatis是什么? Mybatis是一种半自动ORM框架,前身是iBatis,源于“Internet”和“abatis”的组合,除了POJO和映射关系之外,还需要编写SQL语句:   Mybatis映射三要素: POJO 映…
一.实现手写Mybatis三个难点 1.接口既然不能被实例化?那么我们是怎么实现能够调用的? 2.参数如何和sql绑定 3.返回结果 下面是Mybatis接口 二.Demo实现 1.创建Maven工程(开发工具Eclipse) 下一步 下一步 然后点击“完成” 2.配置pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema…
MyBatis 手写MyBatis流程 架构流程图 封装数据 封装到Configuration中 1.封装全局配置文件,包含数据库连接信息和mappers信息 2.封装*mapper.xml映射文件 封装操作:Builder类 Builder类用来操作配置文件(全局配置文件和mapper映射文件),将配置数据封装到类中. XmlConfigBuilder 提供parse方法将dataSource信息封装到Configuration XmlMapperBuilder 提供parse方法将mappe…
MyBatis 手写MyBatis流程 架构流程图 封装数据 封装到Configuration中 1.封装全局配置文件,包含数据库连接信息和mappers信息 2.封装*mapper.xml映射文件 封装操作:Builder类 Builder类用来操作配置文件(全局配置文件和mapper映射文件),将配置数据封装到类中. XmlConfigBuilder 提供parse方法将dataSource信息封装到Configuration XmlMapperBuilder 提供parse方法将mappe…
1. 前言 今天继续搭建我们的kono Spring Boot脚手架,上一文把国内最流行的ORM框架Mybatis也集成了进去.但是很多时候我们希望有一些开箱即用的通用Mapper来简化我们的开发.我自己尝试实现了一个,接下来我分享一下思路.昨天晚上才写的,谨慎用于实际生产开发,但是可以借鉴思路. Gitee: https://gitee.com/felord/kono day03 分支 GitHub: https://github.com/NotFound403/kono day03 分支 2…
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 管你吃几碗粉,有流量就行! 现在我们每天所接收的信息量越来越多,但很多的个人却没有多少分辨知识的能力.很多知识信息也只是蹭热点的泛知识,但泛知识只是一种空泛.不成系统.甚至可能是错误的信息群,不过就是这样的信息却给内容消费者一种"成功获取了知识"吃饱的幻觉,却丧失了对知识层次的把控. 而作为一个本身就很理科的程序员来说,如果都是被泛知识充斥,花费着自己的精力和时间,没有经…
开发的时候,写Mybatis Mapper.xml文件的时候,每次修改SQL都需要重启服务,感觉十分麻烦,于是尝试写了一个Mybatis的Mapper.xml热加载. 能在修改Mapper.xml之后重新加载Mybatis,开发的时候可以用一下. Spring配置: <bean id="MybatisMapperDynamicLoader" class="com.teststartup.MybatisMapperDynamicLoader" /> Jav…
前言 在学习mybatis源码之余,自己完成了一个简单的ORM框架.已完成基本SQL的执行和对象关系映射.本周在此基础上,又加入了缓存和事务功能.所有代码都没有copy,如果也对此感兴趣,请赏个Star. 项目地址:simple-ibatis 初版博文地址:博客园博文 增加代码详解 缓存 com.simple.ibatis.cache 缓存接口-Cache public interface Cache { /**放入缓存*/ void putCache(String key,Object val…