首先了解一个概念,ORM 模型是数据库的表和简单 Java 对象(Plain Ordinary Java Object,简称 POJO)的映射关系模型,主要解决数据库数据和 POJO 对象的相互映射。
MyBatis是一款ORM模型,支持定制化SQL、存储过程以及高级映射。可以使用简单的** XML** 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
了解完ORM模型与什么是MyBatis之后,我们就先了解一下MyBatis的生命周期,顾名思义就是从出现到销毁,一共经历的几个阶段。
MyBatis的生命周期
1.SqlSessionFactoryBuilder 构造器
2.SqlSessionFactory 工厂
3.SqlSession对象
4.SQL Mapper 映射器
1.首先使用MyBatis框架,需要写mybatis-config.xml文件,我们将配置文件写好后,第一步是将配置文件解析,解析后获取的输入流对象注入到SqlSessionFactoryBuilder 对象的build方法中。
private static SqlSessionFactory sqlSessionFactory = null;
static {
InputStream input;
try {
input = Resources.getResourceAsStream("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(input);
} catch (IOException e) {
e.printStackTrace();
}
}
2.通过第一步得到了一个SqlSessionFactory对象,第二步就是通过SqlSessionFactory对象调用一个opensession方法,返回一个SqlSession对象,这个SqlSession非常重要。
SqlSession sqlSession=sqlSessionFactory.openSession();
return sqlSession;
3.第二步创建的SqlSession对象是我们第三步具体获取那个Mapper对象的关键,SqlSession对象有一个getMapper方法,其中需要一个类的参数,这里我们通过反射,创建出一个程序中需要的Mapper对象。
ConsumerMapper conMapper=sqlSession.getMapper(ConsumerMapper.class);
4.Executor 执行器:MyBatis 底层定义了一个 Executor 接口来操作数据库,它将根据SqlSession 传递的参数动态地生成需要执行的SQL 语句,同时负责查询缓存的维护。在 Executor 接口的执行方法中有一个
MappedStatement 类型的参数,该参数是对映射信息的封装,用于存储要映射的SQL 语句的id、参数等信息。最后进行入参和出参的映射。
以上就是MyBatis的生命周期的相关描述。