mybatis大家应该都很耳熟吧,你知道它是什么吗?它的原理又是什么呢?下面跟小编一起来仔细了解一下吧。
一、mybatis是什么?
一款流行的、支持自定义、 SQL、存储过程与高级映射的持久化框架,这就是mybatis。
使用mybatis框架一般不需要编写jdbc或者自己去设置参数什么的,这些mybatis都会帮你自动完成。MyBatis 是可以使用XML格式注解来进行配置呃,它能够映射基本数据元素、Map 接口和java 对象到数据库记录中。
MyBatis 的所有应用都是以 SqlSessionFactory 实例为中心的。SqlSessionFactory 实例可以通过 SqlSessionFactoryBuilder 获得,SqlSessionFactoryBuilder 能够从 XML 配置文件或者通过自定义配置类,来创建一个 SqlSessionFactory 实例。
二、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常见问答相关知识的话,就请多多关注我们的网站吧。
推荐阅读: