一.介绍Mybatis(主要从以下两点进行介绍)

1.MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。

2.Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

二.mybatis框架原理图

三.架构流程图及其解释

1、 mybatis配置

SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。

mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。

2、 通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂

3、 由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。

4、 mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。

5、 Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。

6、 Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。

7、 Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。

最新文章

  1. opencv 抠图联通块(c接口)
  2. Python导入Scipy子模块时出错
  3. Mac OS环境变量配置(Android Studio之Gradle)
  4. LR_问题_如何将场景中的用户设置为百分比形式
  5. SQLite使用教程6 创建表
  6. Vm image download resource
  7. Struts2 学习笔记16 struts标签 part2
  8. iOS 如何随意的穿插跳跃,push来pop去
  9. Exception in thread "main" org.hibernate.MappingException: You may only specify a cache for root
  10. Python基础篇(三)
  11. JavaScript(第二十六天)【表单处理】
  12. Struts+Hibernate+jsp页面,实现分页
  13. (2):Mysql 查看、创建、更改 数据库和表
  14. ArcGIS AddIN 与ArcMap自带工具进行交互
  15. http协议文件与数据上传、及上传图片io流错误
  16. asp.net button控件 使用JS的 disabled
  17. 【转】XP_cmdshell存储过程
  18. 获取SQL Server数据库中的表和字段描述
  19. dd命令的conv=fsync,oflag=sync/dsync
  20. 前端IDE:VSCode + WebStorm

热门文章

  1. [国家集训队2010]小Z的袜子
  2. RxJava如何结合观察者与链式处理
  3. ISO 7064:1983.MOD11-2校验码计算法 : (身份证校验码-18位)
  4. Android: MediaRecorder start failed
  5. zoj 1880 - Tug of War
  6. LeetCode 645. Set Mismatch (集合不匹配)
  7. 关于ZEDboard
  8. 并行运维工具pssh的安装及实战应用
  9. 第二章、Tiny4412 U-BOOT移植二 启动分析【转】
  10. JavaScript Patterns 2.1 Writing Maintainable Code