ζ°≡ 爪哇攻城狮

MyBatis原理简述

API介绍

  MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

主要特征

  MyBatis中接口中的方法和命名空间的sql语句绑定。可以称为面向接口编程,也是其核心。

运行原理简述

  概括:Mybatis通过xml或注解的方式将要执行的statement配置起来,并通过Java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
1、mybatis配置
Configuration.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。
mapper.xml文件即sql映射文件,可以用别名配置多个。文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载
使用
2、 通过Mybatis环境等配置信息构造SqlSessionFactory即会话工厂。
3、 由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。
4、getMapper(接口.class),找到对应的命名空间。创建接口对象。
5、sql映射文件的SQL语句对应接口的方法,当接口对象调用相应的方法时,就会执行相应的sql语句。
6、将Java对象映射成相应的记录。
7、事务提交。
8、关闭SqlSession。

一些说明

1、 mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。
2、 Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。
3、 Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过 Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。
4、Statement对象用于执行不带参数的简单SQL语句。Statement对象用 Connection的方法createStatement创建。

坚持原创技术分享,您的支持将鼓励我继续创作!