MyBatis核心类列表

目录

SqlSessionFactoryBuilder

SqlSessionFactory

SqlSession

Executor

StatementHandler

ResultSetHandler

MyBatis核心类层次图


简述:

MyBatis主要的核心类包括:SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Executor、StatementHandler、ResultSetHandler

SqlSessionFactoryBuilder

每一个MyBatis的应用程序的入口是SqlSessionFactoryBuilder。它的作用是通过XML配置文件创建Configuration对象,然后通过build方法创建SqlSessionFactory对象。

没有必要每次访问Mybatis就创建一次SqlSessionFactoryBuilder,通常的做法是创建一个全局的对象就可以了

private static SqlSessionFactoryBuilder sqlSessionFactoryBuilder;
private static SqlSessionFactory sqlSessionFactory;
​
private static void init() throws IOException 
{
    String resource = "mybatis-config.xml";
    Reader reader = Resources.getResourceAsReader(resource);
    sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    sqlSessionFactory = sqlSessionFactoryBuilder.build(reader);
}

SqlSessionFactory

SqlSessionFactory的主要功能是创建SqlSession对象,和SqlSessionFactoryBuilder对象一样,没有必要每次访问Mybatis就创建一次SqlSessionFactory,通常的做法是创建一个全局的对象就可以了。
​
SqlSessionFactory是线程安全的,它一旦被创建,应该在应用执行期间都存在。在应用运行期间不要重复创建多次,建议使用单例模式。

SqlSession

SqlSession类的主要功能是完成一次数据库的访问和结果的映射,它类似于一次会话概念,顾命名为:SqlSession。
​
SqlSession类似于JDBC里面的Connection,Connection不是线程安全的,SqlSession也不是线程安全的。由于不是线程安全的,所以SqlSession对象的作用域需限制方法内。
​
SqlSession的默认实现类是DefaultSqlSession,它有两个必须配置的属性:Configuration和Executor。mybatis-config.xml中的配置,最后会解析xml成Configuration这个类。SqlSession对数据库的操作都是通过Executor来完成的。
​
SqlSession有一个重要的方法getMapper,顾名思义,这个方式是用来获取Mapper映射器的。

Executor

StatementHandler

StatementHandler是真正访问数据库的地方,并调用ResultSetHandler处理查询结果。

ResultSetHandler

处理查询结果。

MyBatis核心类层次图

SqlSession,作为MyBatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库增删改查功能
​
Executor,MyBatis执行器,是MyBatis调度的核心,负责SQL语句的生成和查询缓存的维护
​
StatementHandler,封装了JDBC Statement操作,负责对JDBC Statement的操作,如设置参数、将Statement结果集转换成List集合。
​
ParameterHandler,负责对用户传递的参数转换成JDBC Statement 所需要的参数
​
ResultSetHandler,负责将JDBC返回的ResultSet结果集对象转换成List类型的集合
​
TypeHandler,负责Java数据类型和JDBC数据类型之间的映射和转换
​
MappedStatement,MappedStatement维护了一条select|update|delete|insert节点的封装
​
SqlSource,负责根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到BoundSql对象中,并返回
BoundSql,表示动态生成的SQL语句以及相应的参数信息
​
Configuration,MyBatis所有的配置信息都维持在Configuration对象之中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值