[第二课]Mybatis框架原理概述,大概了解原理我们就开始肝代码啦! 更新中...

lianjin 4月前 21

回顾上一期

上期帖子地址 点我到达

建议先看第一期,再看本期哦....

上一期文章概述了 Mybatis 框架搭建和基础使用方法

第一点

mybatis 实际上也是根据JDBC规范 而延伸出的一个操数据库的工具框架

其中,帮我们简化了 很多操作 但是在这里 我们来 回溯一下 mybatis 到底帮我们 简化了 那些操作

回顾一下 JDBC 基础操作
  1. 使用Class.forName("数据库驱动类全限定名") 方法 注册数据库驱动类

2.使用 DriverManager.getConnect(x,x,x,x) 获取 connect 对象

3.使用 Connect 对象 调用 getPrepareStatement("预执行sql语句") 获取 prepareStatement 对象

  1. 使用 prepareStatement 对象 setXXXX(index,value) 方法 为 预执行的sql中的 ? 占位符 进行值填充

  2. 调用 prepareStatement 对象的 executeQuery 方法 执行sql

  3. 获取 executeQuery 方法的返回对象 ResultSet

7.遍历 ResultSet 对象 获取 每一行数据中的 字段名<-->字段值
此处 我们在遍历ResultSet 对象的时候 会根据代码的上下文 进行 对象的值填充, 比如 查询的是user表 那么 返回的 最终结果应该是一个 List<User> 对象 我们先把 User对象 进行值填充 然后再 add 到list 中

8.调用prepareStatement.close() 关闭 预处理对象

  1. 调用 connect.close()方法关闭 connect连接

  2. 返回 List 对象

现在对比 mybatis 和 JDBC 原始方式的sql执行中 减少了那些操作
  1. mybatis 会根据我们提供的 数据库配置文件 自动 注册数据库驱动

  2. 自动 获取 connect 对象

3.读取 我们提供的Mapper.xml 文件 也就是上一期中的 User.xml 文件 绑定 其中的 select 标签中的sql 语句 到UserDao 接口 的代理类中, 其中 UserDao接口和SQL语句的 匹配 是通过 nameSpace 和 select标签的 id 进行匹配的

  1. 只需要我们在 mapper 文件中的 select 标签中 指定 resultType ,mybatis 就会自动 遍历 执行sql 以后的 ResultSet 对象封装为我们指定的返回java对象

5.自动关闭 prepareStatement预处理对象和 connect对象 (当然 她什么时候关闭 不需要我们去操心,我们现在也不需要去考虑 资源优化问题,我们只需要知道 mybatis 会自动去管理这两个东西就好了)

根据上面 我们对mybatis 为我们减少了 那些操作步骤 我们先来 猜测一下 它会使用到那些技术
  1. 我们的数据配置文件 为 xml 格式 , 故此mybatis 必定用到了 xml文件解析 (具体他使用的是什么技术或者工具来解析xml 我们暂时不管,我们就暂定 他使用的是dom4j)

2.在上诉 第四步中 我们只需要指定 resultType mybatis 就可以 自动封装 数据库返回的值 为我们所需要的java 对象 那么其中肯定使用到了 java中的 反射机制

3.这就完了? 没错 这就完了 实际上他就干了这些事儿. 这一期 我们说的是 mybatis 实际上帮我们做了什么 下一期, 我们自己来敲代码 实现上诉的 mybatis 实现的功能 .

怎么样 是不是很期待哇? 期待就注册个账户 关注我吧 !!!! XD)

这篇文章是在车上敲的,可能有错别字或者描述不太详细,请见谅,这几天比较忙

咖喱给给

最后于 4月前 被lianjin编辑 ,原因:
最新回复 (0)
    • Deep♂Dark♂Fantastic
      2
        立即登录 立即注册 
返回