MyBatis 执行流程是怎样的?
MyBatis 的执行流程主要包含以下步骤:
- 加载 MyBatis 配置文件:首先,MyBatis 会加载配置文件,包括
mybatis-config.xml
主配置文件和各个 Mapper 配置文件。这些配置文件中包含了数据源、事务管理器、类型别名、类型处理器等配置信息,以及具体的 SQL 语句和映射信息。 -
创建 SqlSessionFactory:通过读取配置信息,MyBatis 会创建一个
SqlSessionFactory
对象。SqlSessionFactory
是一个重量级对象,它的创建和销毁成本都比较高,一般在应用启动时初始化一次,然后在整个应用运行期间都可以使用。 -
获取 SqlSession:当需要进行数据库操作时,从
SqlSessionFactory
中获取一个SqlSession
对象。SqlSession
是一个轻量级对象,它的生命周期通常与一个业务请求相对应,请求处理完毕后就应该关闭。 -
执行 SQL:通过
SqlSession
执行 Mapper 配置文件中定义的 SQL 语句。SQL 的执行可能涉及到参数处理、结果集映射等操作。 -
事务处理:如果 SQL 执行过程中没有发生异常,那么提交事务;如果发生了异常,那么回滚事务。
-
关闭 SqlSession:无论 SQL 执行成功与否,最后都需要关闭
SqlSession
。
这是 MyBatis 的基本执行流程。需要注意的是,这个流程可能会因为使用了一些高级特性(如插件、二级缓存等)而有所变化。