SqlSessionFactory创建sqlsession的原理
时间: 2023-12-07 14:03:57 浏览: 74
SqlSession:获取SqlSession并运行mysql
SqlSessionFactory是MyBatis框架中用于创建SqlSession对象的工厂类。其创建SqlSession对象的原理如下:
1. SqlSessionFactory通过读取MyBatis配置文件中的数据源信息和Mapper的映射关系,初始化Configuration对象。
2. Configuration对象包含了MyBatis的全局配置参数、数据源、Mapper的映射关系等信息。其中Mapper的映射关系通过XML文件或注解方式定义,Configuration对象通过XMLConfigBuilder或者JavaConfigBuilder进行解析和加载。
3. SqlSessionFactory通过调用Configuration对象的newExecutor方法创建Executor对象。
4. Executor对象用于管理StatementHandler、ParameterHandler、ResultSetHandler等对象的创建和执行。它通过Configuration对象中的MappedStatement对象来获取Mapper接口中定义的SQL语句,然后使用StatementHandler创建对应的JDBC Statement对象,最后通过ResultSetHandler返回查询结果。
5. SqlSession对象是Executor的一个代理,SqlSession提供了对MyBatis操作的API接口。SqlSession通过调用Executor对象的方法来执行SQL操作,同时也提供了一系列的事务管理方法。
6. SqlSessionFactory使用完毕后,需要关闭。关闭SqlSessionFactory时会关闭底层的数据源和连接池。
阅读全文