MyBatis作为一个优秀的持久层框架,用于服务端与数据库的交互,它支持定制化的SQL语句,将普通的Java对象(POJO)映射成数据库的数据记录,那么它的具体执行流程是怎么样的呢?下面就来了解一下。
首先我们需要了解MyBatis的几大重要组件,分别是SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Executor、StatementHandler、ParameterHandler、ResultSetHandler以及TypeHandler,这些组件共同构建了MyBatis的整个执行流程。这里简单介绍一下其中几个重要组件的作用,SqlSessionFactoryBuilder顾名思义是用来创建SqlSessionFactory的,而SqlSessionFactory则是生成SqlSession的,SqlSession是一个数据库连接的接口,定义了一些执行sql的方法声明,由其子类进行实现;Executor是对JDBC的封装,用于执行sql语句,我们都知道在JDBC中,执行sql语句前需要调用preparedStatement对sql语句进行预处理(这里补充一下,sql语句的预处理也就是指预编译,利用占位符代替sql语句中的值,目的是提高sql语句的利用率,并且可以防止SQL注入),再调用executor去执行sql语句,因此StatementHandler的作用就是预处理sql语句,然后调用executor方法去执行sql,并把返回的结果集映射为对象(ORM)。
了解了这些组件的作用和功能之后,MyBatis的执行流程图也就自然而然地在心中描绘出来了,首先是创建MyBatis的配置文件,通过SqlSessionFactoryBuilder加载配置文件来创建SqlSessionFactory对象,调用相关方法创建SqlSession来开启数据库连接,根据传入的参数创建Executor和StatementHandler对象,对sql语句进行预处理,接下来就调用ParameterHandler和ResultSetHandler来绑定参数和进行结果集映射,最终获取到结果。
MyBatis的整个执行流程
最新推荐文章于 2024-04-27 14:07:37 发布