1、存放参数和结果映射关系、存放SQL 语句,我们需要定义一个配置类;

2、执行对数据库的操作,处理参数和结果集的映射,创建和释放资源,我们需要定义一个执行器;

3、有了这个执行器以后,我们不能直接调用它,而是定义一个给应用层使用的API,它可以根据SQL 的id 找到SQL 语句,交给执行器执行;

4、直接使用id 查找SQL 语句太麻烦了,我们干脆把存放SQL 的命名空间定义成一个接口,把SQL 的id 定义成方法,这样只要调用接口方法就可以找到要执行的SQL。这个时候我们需要引入一个代理类。

核心对象有了,接下来我们分析一下这个框架操作数据库的主要流程,先从单条查询入手。

手写自己的MyBatis框架-核心对象相关推荐

  1. 手写自己的MyBatis框架-V2.0 可优化之处

    1 .在ResultSetHandler 中, 类型处理都是写死的, 能不能创建一个TypeHandler,把这些关系维护起来,处理所有类型的转换关系和自定义类型: 2.只实现了@Select 的注解 ...

  2. 手写自己的MyBatis框架-SqlSession

    我们已经分析了MeBatis 的主要对象和操作流程,应该从哪里入手? 当我们在psvm 操作的时候,第一个需要的对象是SqlSession.所以我们从应用层的接口SqlSession 入手. 那么我们 ...

  3. 手写自己的MyBatis框架-操作流程

    1.定义接口Mapper 和方法,用来调用数据库操作. Mapper 接口操作数据库需要通过代理类. 2.定义配置类对象Configuration. 3.定义应用层的API SqlSession.它有 ...

  4. 手写自己的MyBatis框架-这个框架需要解决什么问题?

    老王给我看了一段JDBC 的代码: rs.close(); stmt.close(); conn.close(); 1)它需要实现对连接资源的自动管理,也就是把创建Connection.Stateme ...

  5. 手写自己的MyBatis框架-Executor

    到了sqlSession 的selectOne()方法,这里我们要去调用Executor 的query()方法,这个时候我们必须传入SQL 语句和参数(根据statementId 获取). 问题来了: ...

  6. 手写自己的MyBatis框架-支持插件

    定义了一个@Intercepts 注解,目前还只能拦截Executor 的方法,所以属性只要配置方法名称. 定义Interceptor 接口,是所有自定义插件必须实现的接口. 定义Intercepto ...

  7. 手写自己的MyBatis框架-支持注解配置SQL

    定义了一个@Select 注解,加在方法上. 在Configuration 构造函数中的parsingClass() 中解析, 保存在mappedStatements 中(一个HashMap). 注意 ...

  8. 手写自己的MyBatis框架-V2.0结果集处理

    创建ResultSetHandler,在其中创建pojo 对象,获取ResultSet 值,通过反射给pojo 对象赋值. 实体类的转换关系通过@Entity 注解( 保存在MapperRegistr ...

  9. 手写自己的MyBatis框架-V2.0配置文件

    创建了全局配置文件mybatis.properties,存放SQL 连接信息.缓存开关.插件地址.Mapper 接口地址. 全局配置文件在Configuration 配置类的构造器中解析.

最新文章

  1. 斜挎包长度到哪里合适_济宁百叶窗哪里好
  2. 一文彻底搞懂快速幂(原理、实现、矩阵快速幂)
  3. Kubernetes 会不会“杀死” DevOps?
  4. java 连接两个arraylist,java – 在两个线程之间共享一个ArrayList?
  5. Multidex(二)之Dex预加载优化
  6. matplotlib散点图笔记
  7. Dubbo作者亲述:那些辉煌、沉寂与重生的故事 1
  8. 华为201万年薪招的是什么人才?答:人工智能!
  9. [机器学习]关联挖掘介绍
  10. 老调重弹:对kvo的封装思路
  11. 百度商业推广php,百度“知心搜索”,背后商业协议
  12. Spring Boot教程系列
  13. js 获取屏幕高宽_Js获取屏幕宽度、高度
  14. 关于spring boot的web.xml
  15. 奥本大学计算机专业GRE成绩,美国大学GRE分数要求汇总贴,你的目标学校要求多少分?...
  16. python2.X 画一个正方体
  17. 搜狗输入法,输英语单词自动提示
  18. 开会没带纸和笔?按下手机这个按钮,一键完成会议纪要
  19. 机器学习 --- k-means
  20. 自己动手模仿 springmvc 写一个 mvc框架

热门文章

  1. 小程序获取StorageSync时候的坑
  2. java代码开发规范
  3. vs code 快捷键设置 2018
  4. python实现文件夹增量同步
  5. 【06】sass编译工具(弃)
  6. HTML框架标签的使用-lt;framesetgt;
  7. 读《不要告诉我你懂margin(海玉的博客)》有感
  8. dubbo学习之服务消费者
  9. [Swift] 使用Playground
  10. 采用预取(Prefetch)来加速你的网站(转)