仅作个人理解笔记
概念
Mybatis是一个持久层框架,同样也是一个ORM框架,ORM是什么意思呢(Object Relational Mapping)对象关系映射
Java------>MyBatis------->MySql(就是将java类型和MySql类型进行一个转换)。
架构
待画图。
拆解一下
我们需要一个
1.数据库源
- driver 驱动
- Url 地址
- username
- password
2.执行语句
- DDL : 不需要commint,比如建立一个索引,创建一个表这样的
- DML : 需要提交的,比如增删改这样的操作
- DQL :
3.然后进行操作
- Connection: 链接
- PreparedStatement: 操作
- ResultSet: 反馈
MyBatis是如何获取我们的数据源的?
>>SqlSessionBulider
> bulider
> >xmlConfigBulider
> parseConfig
>envronmentsElement
>>DateSouce
>Configuration#setEnvronation
如何获取执行语句?语句在哪里,Mapper文件种的呀!
MapperElement
resource
拿到相应标签的流,去用XmlMapperBuilder(),
会进入ParseStaetemmentNode()的一个方法
MapperStatement
>Configuration#addmapperstatem
MyBatis是如何执行操作的
先open()Sqlsession,o这个过程是链接,前面获取Envrnation(),数据源,前面获取到之后是把他交给了Configuration.set(),现在同同样用Configuration.get()去获得一个值,
同样getMapperstatem, Preparestatement();对应着java.sql这样一个类
MyBatis加载mapper文件有几种方式?
four four four(4种)
- resource
- url
- class
- package name
优先级最高的是那种加载方式呢:package
MyBatis一级缓存默认开启的还是关闭的?
默认开启 cacheEnabled 的变量,默认是true