【狂神说java MyBatis 笔记】 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解进行配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。 一、MyBatis 概述 MyBatis 是由 Apache Software Foundation 维护的开源项目,它的核心功能在于简化 SQL 操作,提供了一种灵活的映射机制,使得开发者可以方便地将 SQL 语句与 Java 代码解耦。MyBatis 通过 XML 或注解的方式将 SQL 语句配置到映射文件或实体类上,然后通过 SqlSession 接口执行 SQL 并处理结果。 二、MyBatis 的主要组件 1. SqlSessionFactory:它是 MyBatis 的核心工厂类,用于创建 SqlSession 对象。 2. SqlSession:SqlSession 提供了与数据库交互的方法,如执行 SQL、提交事务等。 3. Mapper:Mapper 接口是用户自定义的,用于操作数据库的方法,MyBatis 会自动将其映射为 SQL 语句。 4. Mapper XML 文件:包含 SQL 语句和映射规则,与 Mapper 接口相对应。 5. Executor:执行器,负责执行 SQL,有 SimpleExecutor、ReuseExecutor 和 BatchExecutor 三种类型。 6. ParameterHandler:参数处理器,用于处理 SQL 语句中的参数。 7. ResultHandler:结果处理器,用于处理 SQL 执行后的结果。 三、MyBatis 的基本使用 1. 创建 MyBatis 配置文件(mybatis-config.xml),配置数据源、事务管理器等信息。 2. 编写 Mapper XML 文件,定义 SQL 语句和映射规则。 3. 创建 Mapper 接口,方法名与 XML 文件中的 SQL ID 一致。 4. 使用 SqlSessionFactoryBuilder 创建 SqlSessionFactory。 5. 通过 SqlSessionFactory 获取 SqlSession。 6. 使用 SqlSession 执行 SQL(通过 Mapper 接口调用方法)。 7. 处理返回的结果,并关闭 SqlSession。 四、MyBatis 动态 SQL MyBatis 的动态 SQL 功能非常强大,允许在 XML 映射文件中使用 if、choose、when、otherwise、foreach 等标签编写条件语句,使得 SQL 语句的生成更加灵活。 五、MyBatis 的缓存机制 MyBatis 内置了本地缓存和二级缓存。本地缓存是在 SqlSession 层面,同一个 SqlSession 中的多次查询会复用之前的查询结果;二级缓存是全局共享的,可以在多个 SqlSession 之间复用数据,但需要注意并发控制和数据一致性问题。 六、MyBatis 的事务管理 MyBatis 支持手动和自动两种事务管理方式。手动模式下,开发者需要自己控制事务的开启、提交和回滚;自动模式下,MyBatis 会根据配置自动管理事务,一般推荐在 Spring 框架中配合使用。 七、MyBatis 与其他框架的集成 MyBatis 可以很好地与 Spring 集成,实现 DAO 层的依赖注入,同时 Spring 还能帮助管理 MyBatis 的事务。此外,MyBatis 也能够与 Mybatis-Plus、Mybatis-Spring-Boot-Starter 等扩展库结合,进一步简化开发工作。 总结,MyBatis 作为一个轻量级的 ORM 框架,以其简洁、高效和高度可定制的特点,在 Java 开发中占据着重要的地位。它使得开发者能够专注于业务逻辑,而无需过多关注底层数据库操作的细节,从而提高了开发效率和代码质量。通过深入学习 MyBatis,我们可以更好地掌握 Java 中的数据库操作技术。
- 1
- 粉丝: 9
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助