1、什么是mybatis
它是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低
1.1 mybatis的优点
1、简化数据库操作
2、灵活的映射关系
3、易于集成和使用
4、高性能
5、可扩展性
2、Mybatis的相关概念
2.1框架的概念
框架是一种经过检验的、具有特定功能的半成品
2.2持久化
把内存有用的数据以某种技术保存起来,并且可以再次取出来应用
2.3ORM
ORM(对象关系映射)是一种编程技术,用于将对象模型和关系数据库之间的数据进行映射和转换。它允许开发者使用面向对象的方式来操作数据库,而不需要直接编写SQL语句。
3、Mybatis的核心对象
3.1SqlSessionFactioryBuilder
SqlSessionFactoryBuilder是MyBatis框架中的一个类,它的主要作用是用于构建SqlSessionFactory对象。
SqlSessionFactory是MyBatis的核心类之一,它负责创建和管理SqlSession对象,提供了与数据库交互的方法。SqlSessionFactoryBuilder则是用于创建SqlSessionFactory的辅助类。
作用:根据配置信息构建SqlSessionFactory实例
作用域:局部变量
3.2SqlsessionFactory
SqlSessionFactory是MyBatis框架中的一个重要概念。它是一个单例对象,用于创建和管理SqlSession实例。
作用:创建SqlSession的实例工厂
作用域:全局变量
SqlSession
SqlSession是MyBatis框架中的一个重要概念,它是与数据库交互的主要接口
作用:执行SQL语句、事务管理、数据库连接管理
作用域:请求范围或局部变量
4、Mybatis的配置文件
-
configuration(配置):根元素,包含了MyBatis的所有配置信息。
-
properties(属性):用于配置MyBatis的属性,如数据库连接信息、日志实现等。可以将这些属性值定义在外部的属性文件中,并通过<properties>元素引入。
-
environments(环境):定义了MyBatis的运行环境,可以配置多个环境,如开发环境、测试环境和生产环境。每个环境可以有不同的数据源和事务管理器。
-
transactionManager(事务管理器):定义了事务的管理方式,可以使用JDBC事务或Spring事务等。
-
mappers(映射器):用于配置与数据库表的映射关系,定义SQL语句和映射规则。可以使用XML或注解的方式来配置映射器。可以通过<mapper>元素引入外部的映射文件,也可以直接在配置文件中定义映射关系。
-
mapper(映射器):定义了一个具体的映射器,可以通过resource、url或class属性来指定映射文件的位置。可以使用XML或注解的方式来配置映射器。
这些核心配置元素共同构成了MyBatis的配置文件,通过配置文件可以定义数据库连接、事务管理、映射关系等重要信息,使得MyBatis能够正确地执行数据库操作。
5、Mybatis的工作原理
MyBatis的工作原理主要分为两个阶段:配置阶段和执行阶段。
配置阶段:
-
加载配置文件:MyBatis首先加载MyBatis的配置文件(通常为XML格式),解析其中的配置信息。
-
创建SqlSessionFactory:根据配置文件中的配置信息,创建SqlSessionFactory对象。SqlSessionFactory是MyBatis的核心,负责创建和管理SqlSession对象。
-
创建映射器(Mapper):根据配置文件中的映射器配置,解析映射器文件或注解,创建映射器对象。映射器对象包含了与数据库交互的SQL语句和映射关系。
执行阶段:
-
创建SqlSession:通过SqlSessionFactory创建SqlSession对象。SqlSession是与数据库交互的主要接口。
-
执行SQL语句:使用SqlSession对象执行数据库操作,包括查询、插入、更新和删除等。MyBatis会根据映射器中配置的SQL语句,将参数传递给数据库,并获取执行结果。
-
对象映射:MyBatis将查询结果映射为Java对象。根据映射器中的配置,将查询结果中的列与Java对象的属性进行映射,生成相应的Java对象。
-
事务管理:MyBatis支持事务管理,可以在SqlSession中开启、提交或回滚事务。事务的提交和回滚会影响到数据库的操作。
-
关闭SqlSession:完成数据库操作后,关闭SqlSession,释放资源。可以通过SqlSession的close方法来关闭SqlSession。
MyBatis的工作原理是通过配置文件进行初始化,创建SqlSessionFactory和映射器对象,然后通过SqlSession执行SQL语句,将查询结果映射为Java对象,实现与数据库的交互。