网站开发项目管理,如何优化推广网站,厦门seo代理商,重庆市建设工程信息网、目录
1 MyBatis 介绍
2 MyBatis 的重要组件
3 MyBatis 执行流程
4 参考文档 1 MyBatis 介绍 MyBatis 是一个半自动化的 ORM #xff08;Object-Relational Mapping#xff0c;对象关系映射#xff09;持久层框架#xff0c;它允许开发者通过 XML 或注解将对象与数据库中…目录
1 MyBatis 介绍
2 MyBatis 的重要组件
3 MyBatis 执行流程
4 参考文档 1 MyBatis 介绍 MyBatis 是一个半自动化的 ORM Object-Relational Mapping对象关系映射持久层框架它允许开发者通过 XML 或注解将对象与数据库中的记录建立映射关系同时提供了灵活的 SQL 编写和参数设置功能。以下是 MyBatis 的一些详细介绍
JDBC 代码简化MyBatis 能根据不同的条件动态生成 SQL 语句使用它可以避免编写大量的 JDBC 代码如手动设置参数和检索结果集。MyBatis 通过配置和映射机制自动处理这些底层细节从而简化了数据库操作的代码量参数传递可以通过参数传递的方式避免 SQL 注入攻击提高了数据库操作的安全性存储过程MyBatis 不仅支持基本的 SQL 查询还支持存储过程的调用。这使得在数据库层面封装复杂逻辑成为可能有助于提高应用程序的性能高级映射MyBatis 提供了通过 XML配置文件或注解建立高级映射的功能可以将数据库中的数据映射到 Java 对象包括原语类型、接口和 POJOPlain Old Java Object普通老式 Java 对象当然也可以将原语类型、接口和 POJO 映射成数据库中的记录缓存机制MyBatis 提供了一级和二级缓存机制减少了对数据库的访问次数提高了系统的性能插件机制支持插件扩展可以通过自定义插件来实现一些特定的功能如分页、审计等
持久层和 ORM
持久 (Persistence)即把数据如内存中的对象保存到可永久保存的存储设备中如磁盘。持久层是指在软件系统中负责将数据持久化到数据库或其他存储介质中的那部分架构。它的主要任务是处理与数据库交互的逻辑包括数据的读取、写入、更新和删除等操作ORM 是一种将对象模型和关系型数据库进行映射的技术。通过 ORM开发者可以使用面向对象的方式来操作数据库无需直接编写复杂的 SQL 语句而 MyBatis 仍需要编写 SQL 语句因此它是一个半自动化的 ORM 框架
2 MyBatis 的重要组件 Mybatis 的配置文件SqlMapConfig.xml名称可以任意 是 Mybatis 的全局配置文件主要配置数据源、事务、加载映射文件等。Mapper.xml即 SQL 映射文件主要是配置 Statement数据库操作的具体语句 的相关信息如 SQL 语句SqlSessionFactoryBuilder会根据 XML 配置或 Java 配置来生成 SqlSessionFactory 对象采用分布构建的 Builder 建造者模式。简单来说就是分步构建一个大的对象例如建造一个大房子采用购买砖头、砌砖、粉刷墙面的步骤建造其中的大房子就是大对象一系列的建造步骤就是分步构建SqlSessionFactory用于生成 SqlSession可以通过 SqlSessionFactory.openSession() 方法创建 SqlSession 对象。SqlSessionFactory 使用工厂模式是线程安全的一旦被创建可以在整个应用中重复使用来获取 SqlSession 实例从而与数据库进行交互工厂模式简单来说就是我们获取对象是通过一个类由这个类去创建我们所需的实例并返回而不是我们自己通过 new 去创建SqlSession是与数据库交互的主要入口相当于 JDBC 中的 Connection 对象通过 SqlSessionFactory 获取 SqlSession 实例后就可以执行SQL命令、获取映射器和管理事务等操作ExecutorMyBatis 中所有的 Mapper 语句的执行都是通过 Executor 执行的Mapper由 XML 文件和 Java 接口组成根据 XML 中配置的映射信息执行对应的 SQL 语句并返回执行结果Mapper 接口数据操作接口也就是通常说的 DAO 接口要和 Mapper 配置文件中的方法一一对应也就是必须和 Mapper.xml 中的增删改查标签 id 一致Mapper 配置用于组织具体的查询业务和映射数据库的字段关系可以使用 XML 格式Mapper.xml或 Java 注解格式来实现MappedStatement封装了 Statement 的相关信息包括 SQL 语句、输入参数和输出结果等。在 MyBatis 中每个 Mapper.xml 文件中的 select、insert、update、delete 标签都会生成一个 MappedStatement 对象
3 MyBatis 执行流程
MyBatis的执行流程可以概括为以下几个关键步骤
加载配置MyBatis 启动时会根据配置文件和 Java 代码的注解中加载 SQL 的配置信息。这些信息包括传入参数映射配置、执行的SQL语句、结果映射配置等然后形成一个或多个 MappedStatement 对象并存储在 Configuration 对象中创建 SqlSessionFactory通过读取的配置文件信息MyBatis 会创建一个 SqlSessionFactory 实例。这个工厂类是线程安全的一旦创建可以在应用中重复使用来获取 SqlSession 实例创建 SqlSessionSqlSession 是 MyBatis 中执行 SQL 命令的主要接口。通过 SqlSessionFactory 获取 SqlSession 实例后可以通过它来执行 SQL 命令、获取映射器和管理事务等操作解析映射器当调用 Mapper 接口的方法时MyBatis 会根据方法名找到对应的 MappedStatement 对象执行 SQLMyBatis 使用 Executor 接口的实现类来执行 SQL 语句。BaseExecutor 定义了基本的执行流程而 CachingExecutor 在此基础上增加了缓存功能结果映射查询结果会被映射到 Java 对象中这个过程依赖于 MappedStatement 中的结果映射配置返回结果最后执行结果会返回给调用者
4 参考文档
Mybatis3详解一----Mybatis的介绍 - 唐浩荣 - 博客园 (cnblogs.com)
MyBatis的执行原理详细介绍 - aspirant - 博客园 (cnblogs.com)