手写自己的MyBatis框架-核心对象
1、存放参数和结果映射关系、存放SQL 语句,我们需要定义一个配置类;
2、执行对数据库的操作,处理参数和结果集的映射,创建和释放资源,我们需要定义一个执行器;
3、有了这个执行器以后,我们不能直接调用它,而是定义一个给应用层使用的API,它可以根据SQL 的id 找到SQL 语句,交给执行器执行;
4、直接使用id 查找SQL 语句太麻烦了,我们干脆把存放SQL 的命名空间定义成一个接口,把SQL 的id 定义成方法,这样只要调用接口方法就可以找到要执行的SQL。这个时候我们需要引入一个代理类。
核心对象有了,接下来我们分析一下这个框架操作数据库的主要流程,先从单条查询入手。
手写自己的MyBatis框架-核心对象相关推荐
- 手写自己的MyBatis框架-V2.0 可优化之处
1 .在ResultSetHandler 中, 类型处理都是写死的, 能不能创建一个TypeHandler,把这些关系维护起来,处理所有类型的转换关系和自定义类型: 2.只实现了@Select 的注解 ...
- 手写自己的MyBatis框架-SqlSession
我们已经分析了MeBatis 的主要对象和操作流程,应该从哪里入手? 当我们在psvm 操作的时候,第一个需要的对象是SqlSession.所以我们从应用层的接口SqlSession 入手. 那么我们 ...
- 手写自己的MyBatis框架-操作流程
1.定义接口Mapper 和方法,用来调用数据库操作. Mapper 接口操作数据库需要通过代理类. 2.定义配置类对象Configuration. 3.定义应用层的API SqlSession.它有 ...
- 手写自己的MyBatis框架-这个框架需要解决什么问题?
老王给我看了一段JDBC 的代码: rs.close(); stmt.close(); conn.close(); 1)它需要实现对连接资源的自动管理,也就是把创建Connection.Stateme ...
- 手写自己的MyBatis框架-Executor
到了sqlSession 的selectOne()方法,这里我们要去调用Executor 的query()方法,这个时候我们必须传入SQL 语句和参数(根据statementId 获取). 问题来了: ...
- 手写自己的MyBatis框架-支持插件
定义了一个@Intercepts 注解,目前还只能拦截Executor 的方法,所以属性只要配置方法名称. 定义Interceptor 接口,是所有自定义插件必须实现的接口. 定义Intercepto ...
- 手写自己的MyBatis框架-支持注解配置SQL
定义了一个@Select 注解,加在方法上. 在Configuration 构造函数中的parsingClass() 中解析, 保存在mappedStatements 中(一个HashMap). 注意 ...
- 手写自己的MyBatis框架-V2.0结果集处理
创建ResultSetHandler,在其中创建pojo 对象,获取ResultSet 值,通过反射给pojo 对象赋值. 实体类的转换关系通过@Entity 注解( 保存在MapperRegistr ...
- 手写自己的MyBatis框架-V2.0配置文件
创建了全局配置文件mybatis.properties,存放SQL 连接信息.缓存开关.插件地址.Mapper 接口地址. 全局配置文件在Configuration 配置类的构造器中解析.
最新文章
- 斜挎包长度到哪里合适_济宁百叶窗哪里好
- 一文彻底搞懂快速幂(原理、实现、矩阵快速幂)
- Kubernetes 会不会“杀死” DevOps?
- java 连接两个arraylist,java – 在两个线程之间共享一个ArrayList?
- Multidex(二)之Dex预加载优化
- matplotlib散点图笔记
- Dubbo作者亲述:那些辉煌、沉寂与重生的故事 1
- 华为201万年薪招的是什么人才?答:人工智能!
- [机器学习]关联挖掘介绍
- 老调重弹:对kvo的封装思路
- 百度商业推广php,百度“知心搜索”,背后商业协议
- Spring Boot教程系列
- js 获取屏幕高宽_Js获取屏幕宽度、高度
- 关于spring boot的web.xml
- 奥本大学计算机专业GRE成绩,美国大学GRE分数要求汇总贴,你的目标学校要求多少分?...
- python2.X 画一个正方体
- 搜狗输入法,输英语单词自动提示
- 开会没带纸和笔?按下手机这个按钮,一键完成会议纪要
- 机器学习 --- k-means
- 自己动手模仿 springmvc 写一个 mvc框架