MyBatis 初始化过程
可以分为以下几个步骤:
-
添加依赖:首先,需要在项目的
pom.xml
(如果是 Maven 项目)或build.gradle
(如果是 Gradle 项目)文件中添加 MyBatis 以及数据库驱动的依赖。 -
配置文件:创建 MyBatis 的配置文件
mybatis-config.xml
,这个文件包含了 MyBatis 的全局配置信息,如数据库连接信息、事务管理、映射文件等。 -
映射文件:创建 SQL 映射文件(通常是 XML 格式),在这些文件中定义 SQL 语句和结果映射。这些文件可以单独存在,也可以按包结构组织。
-
创建数据源和 SqlSessionFactory:通过代码或依赖注入(如 Spring)来创建
SqlSessionFactory
实例。SqlSessionFactory
是 MyBatis 的核心接口,用于生成SqlSession
实例。 -
SqlSession:通过
SqlSessionFactory
获取SqlSession
实例,SqlSession
提供了执行映射的 SQL 语句的方法,以及管理事务的方法。 -
执行 SQL 语句:使用
SqlSession
来执行定义在映射文件中的 SQL 语句,进行数据的增删改查操作。 -
处理结果:MyBatis 会将数据库查询的结果自动映射到 Java 对象上,可以直接使用这些对象进行后续操作。
-
关闭 SqlSession:操作完成后,应该关闭
SqlSession
以释放资源。
MyBatis代码示例
XML方式:
String resource = "com/yang/mybatis/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
List list = sqlSession.selectList("com.yang.mapper.UserMapper.queryAllUser");
Java API方式:
String resource = "com/yang/mybatis/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, null,null);
Configuration configuration = parser.parse();
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
SqlSession sqlSession = sqlSessionFactory.openSession();
List list = sqlSession.selectList("com.yang.mapper.UserMapper.queryAllUser");
-
调用SqlSessionFactoryBuilder对象的build(inputStream)方法;
-
SqlSessionFactoryBuilder会根据输入流inputStream等信息创建XMLConfigBuilder对象;
-
SqlSessionFactoryBuilder调用XMLConfigBuilder对象的parse()方法;
-
XMLConfigBuilder对象返回Configuration对象;
-
SqlSessionFactoryBuilder根据Configuration对象创建一个DefaultSessionFactory对象;
-
SqlSessionFactoryBuilder返回 DefaultSessionFactory对象给Client,供Client使用。
初始化过程中的对象:
-
SqlSessionFactoryBuilder : SqlSessionFactory的构造器,用于创建SqlSessionFactory,采用了Builder设计模式
-
Configuration :该对象是mybatis-config.xml文件中所有mybatis配置信息
-
SqlSessionFactory:SqlSession工厂类,以工厂形式创建SqlSession对象,采用了Factory工厂设计模式
-
XmlConfigParser :负责将mybatis-config.xml配置文件解析成Configuration对象,共SqlSessonFactoryBuilder使用,创建SqlSessionFactory