博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是mybatis?
阅读量:7070 次
发布时间:2019-06-28

本文共 1161 字,大约阅读时间需要 3 分钟。

[学习笔记]

什么是mybatis:

Mybatis本质是一种半自动化的ORM框架,前身是ibatis,除了要pojo和映射关系之外,还需要些sql语句。

怎么看待ORM框架:

处理矛盾的,java程序员喜欢面向对象开发和面向接口开发,而数据库是一张张表和一个个库组成的,这两者的关系很难调和,而关系型映射解决了这一个问题。

Mybatis映射文件三要素:

SQL;

映射规则;

Pojo;

为什么要用mybatis而不用hibernate?

在我们互联网的环境里面, 我们经常要面对海量数据,所以我们要基于底层的调优能力,就是sql语句。而hibernate生成的sql语句很不透明。

Mybatis核心流程三大阶段:

初始化阶段,读取XML配置文件和注解中的配置信息,创建解析对象,并完成各个模块的初始化工作。就是把我们的配置文件加载到内存里面去。在sqlSession初始化的时候加载到内存中去的。

代理阶段,封装iBatis的编程模型,使用mapper接口开发的初始化工作;

数据读写阶段,通过SqlSession完成SQL的解析,参数的映射,SQL的执行,结果的反射解析过程。

SqlSession

SqlSession意味着创建数据库会话,代表了一次与数据库的连接;

是mybatis对外提供数据访问的主要API;

实际上SqlSession的功能都是基于Excutor来实现的。

Mybatis的两种编程模型Mybatis封装了ibatis编程模型,使用sqlsession对外提供数据库的访问。还有一种是使用mapper接口编程,就可以访问数据库

Mybatis和ibatis的区别

Mybatis前身是ibatis的,ibatis之前是Apache旗下的产品,后来到了谷歌旗下,但是谷歌发现ibatis实现起来很麻烦,还需要维护静态变量,并且没有业务含义。所以谷歌改成了mybatis,通过面向接口的方式,让所有代码有了业务含义,屏蔽掉了底层代码的复杂性。

为什么使用mapper接口就可以对数据库进行访问了呢?

其实最后它还是转成了底层的ibatis执行方法,它会使用配置文件解读+动态代理, 找到session中的对应方法执行,找到方法的命名空间和方法名。传递参数。

业务流程还是首先要实例化sqlssessionFactory,加载数据库配置文件以及mapper.xml到configuration对象。然后获取sqlsession对象。然后通过动态代理跨越面向接口编程和ibatis编程的鸿沟,最后遵循jdbc的规范,通过底层的四大对象合作完成功能。

 

版权声明:本文为转载文章。原文地址:

转载于:https://www.cnblogs.com/haima1949/p/10761685.html

你可能感兴趣的文章
大数据技术在发展 挑战与机遇并存
查看>>
《Drupal实战》——3.4 小结
查看>>
如何提高数据质量?
查看>>
美国软件商涉嫌行贿中国国企官员 折射成品软件价值缩水行业困局
查看>>
台厂九月报:新日光营收逆势狂涨64%
查看>>
《软件需求工程(第2版)》一1.4 需求规格说明
查看>>
AMD重回服务器市场,发EPYC霄龙数据中心处理器
查看>>
异构数据中心的简化与安全保护
查看>>
Patternex|这家初创企业的平台模拟人类安全分析师
查看>>
Li-Fi无线技术大揭秘 有光就能上网!
查看>>
Android运行时权限机制解析
查看>>
面向对象详解
查看>>
python提高
查看>>
Codding杂记
查看>>
Jupyter Notebook 在 macOS 系统上的快捷键
查看>>
快速学习小程序的技巧
查看>>
以太坊dapp应用--福利彩票 IDEA+React(简单版)
查看>>
面试错误总结
查看>>
易于理解的Dagger2入门篇
查看>>
如何简单高效地部署和监控分布式爬虫项目
查看>>