mybatis原理都有哪些?mybatis是什么?

TheDisguiser 2020-05-13 22:15:42 java常见问答 9364

mybatis大家应该都很耳熟吧,你知道它是什么吗?它的原理又是什么呢?下面跟小编一起来仔细了解一下吧。

一、mybatis是什么?

一款流行的、支持自定义、 SQL、存储过程与高级映射的持久化框架,这就是mybatis。

使用mybatis框架一般不需要编写jdbc或者自己去设置参数什么的,这些mybatis都会帮你自动完成。MyBatis 是可以使用XML格式注解来进行配置呃,它能够映射基本数据元素、Map 接口和java 对象到数据库记录中。

MyBatis 的所有应用都是以 SqlSessionFactory 实例为中心的。SqlSessionFactory 实例可以通过 SqlSessionFactoryBuilder 获得,SqlSessionFactoryBuilder 能够从 XML 配置文件或者通过自定义配置类,来创建一个 SqlSessionFactory 实例。

二、mybatis工作原理是什么?

Mybatis层次结构

mybatis原理

MyBatis主要成员

1.Configuration MyBatis的的所有配置信息都保存在Configuration对象中,mybatis配置文件中大部分配置都会存储到该类中。

1.SqlSession MyBatis工作的主要顶层API,它表示mybatis与数据库交互时的会话,是数据库增删改查功能的爸爸。

3.Executor MyBatis执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护。

4.StatementHandler 它封装了JDBC Statement操作,负责对JDBC statement 的操作。

5.ParameterHandler 它负责对用户传递的参数转换成JDBC Statement 所对应的数据类型

6.ResultSetHandler 它负责将JDBC返回的ResultSet结果集对象转换成List类型的集合

7.TypeHandler 它负责java数据类型和jdbc数据类型之间的映射和转换

8.MappedStatement 它负责维护一条节点的封装

9.SqlSource 它负责根据传递用户的parameterObject,来动态地生成SQL语句,并把信息封装到BoundSql对象中,来返回。

10.BoundSql 这个对象表示动态生成的SQL语句以及相应的参数信息

这些成员在mybatis中占据着各种重要岗位,各种数据库操作基本都与它们有关,掌握好它们就离学会mybatis不远了。

mybatis工作流程:

首先我们要知道,mybatis所有的增删改查都是基于sqlsession的,SqlSession又是由SqlSessionFactory类创建出来的(这里采用了java设计模式中的工厂模式),那SqlSessionFactory又是由SqlSessionFactoryBuilder创建的,所以SqlSessionFactoryBuilder要想创建SqlSessionFactory,必须要有mybatis配置文件,下面是SqlSession的创建代码:

//加载classpath路径下的mybatis配置文件
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
//根据加载配置文件产生的输入流,来创建一个SqlSessionFactory
SqlSessionFactory sessionFactory = new
SqlSessionFactoryBuilder()
    .build( in );
//根据SqlSessionFactory创建SqlSession
SqlSession session = sessionFactory.openSession();

这些就是本篇文章的所有内容了,想了解更多java常见问答相关知识的话,就请多多关注我们的网站吧。

推荐阅读:

ibatis和mybatis的区别是什么?有什么不同?

mybatis多对多映射关系,详细讲解

springboot整合mybatis如何实现?特点有哪些