MyBatis是一个优秀的持久层框架,它允许我们使用定制化SQL、存储过程以及高级映射,同时底层还为我们封装了JDBC的繁杂过程,真是太方便了!
以下是MyBatis工作原理的主要步骤:
读取配置文件:
MyBatis首先会读取mybatis-config.xml这个全局配置文件,这个文件里包含了MyBatis的运行环境信息,比如数据库连接信息等。
加载映射文件:
接着,MyBatis会加载SQL映射文件(通常是.xml文件),这些文件中配置了操作数据库的SQL语句。每个映射文件通常对应数据库中的一张表。
构造会话工厂:
通过MyBatis的环境等配置信息,MyBatis会构造出一个会话工厂(SqlSessionFactory)。这个工厂类采用工厂模式设计,实现了MyBatis应用程序与数据库之间的解耦。
创建会话对象:
由会话工厂创建出SqlSession对象,这个对象里包含了执行SQL语句的所有方法,我们可以通过它来发送SQL并执行,同时也能获取Mapper接口。
通过Mapper操作数据库:
Mapper是MyBatis中抽象出来的一个概念,表示一类DAO类的接口。每个Mapper接口中定义了对应SQL操作的方法。当我们调用这些方法时,MyBatis会将其解析成MappedStatement对象,这个对象包含了SQL语句的语法、入参映射、结果映射等相关信息。
执行器(Executor)执行SQL:
MyBatis底层定义了一个Executor接口来操作数据库。当我们执行Mapper接口中的方法时,实际上是调用了Executor接口的实现类(比如SimpleExecutor、ReuseExecutor、BatchExecutor)来执行SQL语句,并返回结果。
结果映射:
执行完SQL后,MyBatis会将查询结果映射成Java对象或集合,然后返回给调用者。这个映射过程可以通过XML文件或注解来配置。
以上就是MyBatis的主要工作原理啦! 它通过配置文件和映射文件来管理SQL语句和结果映射,通过会话工厂和会话对象来执行SQL语句,并通过Mapper接口来简化数据库操作