什么是mybatis
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录.

orm工具的基本思想
无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点:
1. 从配置文件(通常是XML配置文件中)得到 sessionfactory.
2. 由sessionfactory  产生 session
3. 在session 中完成对数据的增删改查和事务提交等.
4. 在用完之后关闭session 。

5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。

总体流程
(1)加载配置并初始化

触发条件:加载配置文件
将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。
(2)接收调用请求
触发条件:调用Mybatis提供的API
传入参数:为SQL的ID和传入参数对象
处理过程:将请求传递给下层的请求处理层进行处理。
(3)处理操作请求 触发条件:API接口层传递请求过来
传入参数:为SQL的ID和传入参数对象
处理过程:
(A)根据SQL的ID查找对应的MappedStatement对象。
(B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。
(C)获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。
(D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。
(E)释放连接资源。
(4)返回处理结果将最终的处理结果返回。

最新文章

  1. Android+PHP+MYSQL把数据库中的数据显示在Android界面上
  2. width 、 height 与 box-sizing : border-box ,content-box 的关系
  3. 在VC++6.0开发中实现全屏显示
  4. 简单Matrix 的方法说明记录
  5. 路由器WAN端与LAN端的区别
  6. IO流04_InputStream和Reader输入流
  7. Android Framework------之PowerManagerService的功能
  8. iOS之UITableViewCell左右滑动效果
  9. Python 操作Redis
  10. Angular - - Angular数据类型判断
  11. 基于am3358的led跑马灯测试
  12. 用vmware workstation制作cloudstack(kvm)镜像及问题解决办法
  13. Apache Hadoop 2.9.2 的HDFS High Available模式部署
  14. ESP8266-Arduino杀手?
  15. Lucene实战之基于StandardAnalyzer读写索引
  16. ubuntu下安装intel realsense驱动
  17. uva-10125-暴力枚举
  18. pchar,pwidechar,pansichar作为返回参数时内存访问错误
  19. 在WinForm应用程序中嵌入WPF控件
  20. [JS] IE下ajax请求不生效或者请求结果不更新

热门文章

  1. Vue node.js商城-购物车模块
  2. 几个常用的 Git 高级命令
  3. Python基础—12-面向对象(02)
  4. iOS:常用属性、方法
  5. c# 任务超时执行
  6. layDate 闪现 循环一个以上会闪现
  7. maven-认识
  8. 【PHP项目】产品新增的多图上传
  9. Spring BindingResult验证框架Validation特殊用法
  10. 动态规划----FatMouse’s Speed(HDU 1160)