### MyBatis 知识点概述 #### 1. MyBatis 概述与历史沿革 - **起源与发展**:MyBatis 起源于 Apache 的一个开源项目 iBatis,该项目最初由 Apache Software Foundation 开发。2010 年,该项目从 Apache Software Foundation 迁移到 Google Code,并更名为 MyBatis。2013 年 11 月,项目再次迁移至 Github。 - **iBATIS 的含义**:iBATIS 名称来源于 “internet” 和 “abatis” 的组合,是一个基于 Java 的持久层框架。该框架提供 SQL Maps 和 Data Access Objects (DAO) 两种持久化方式。 - **MyBatis 的特性**:MyBatis 是一个优秀的持久层框架,支持普通的 SQL 查询、存储过程及高级映射功能。它消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索工作。MyBatis 使用简单的 XML 或注解进行配置和原始映射,能够将接口和 Java 的 POJOs 映射到数据库中的记录。 #### 2. MyBatis 入门与安装配置 - **安装与配置步骤**: - 创建数据库表。 - 导入必需的 Jar 包(包括 MyBatis 包和数据库驱动包)。 - 配置 MyBatis 文件: - 总体配置文件:配置数据库连接信息等。通常位于 `src/configuration.xml`。 - 映射文件:定义 SQL 语句,配置数据库表与实体类之间的关系。 - 测试类:编写测试类,通过单元测试验证 MyBatis 的功能是否正确实现。 - **MyBatis 工作原理**:创建一个工具类来封装获取 SqlSession 的方法,便于在项目中复用。 #### 3. 单表 CRUD 操作 - **添加操作**:在映射文件中定义 SQL 插入语句,使用 `<insert>` 标签。参数类型通过 `parameterType` 属性指定。 - **更新操作**:使用 `<update>` 标签定义 SQL 更新语句。 - **删除操作**:使用 `<delete>` 标签定义 SQL 删除语句。 - **查询操作**: - 根据主键查询:使用 `<select>` 标签定义 SQL 查询语句。 - like 查询:处理模糊查询。 - 动态 SQL 查询:支持条件查询,如 `<if>`、`<choose>`、`<when>`、`<otherwise>` 等标签。 - 动态更新:使用 `<set>` 标签处理更新语句中动态部分。 - `<foreach>`:构建 in 条件。该标签用于迭代集合,需指定 `item`、`index`、`collection`、`open`、`separator` 和 `close` 属性。 #### 4. 列名与实体属性名不一致的处理 - **解决方案**: - 起别名:在 SQL 语句中使用 `AS` 关键字给列起别名,使得列名与实体类属性名一致。 - 使用 resultMap:通过 `<resultMap>` 定义结果映射规则,实现列名与实体属性名之间的映射。 #### 5. `<sql>` 和 `<include>` 标签的应用 - **使用场景**:通过 `<sql>` 标签定义可重用的 SQL 片段,使用 `<include>` 引用这些片段,以减少重复编写相同的 SQL 语句。 #### 6. 添加数据时返回主键值 - **解决方案**: - Oracle:使用序列获取新的主键值。 - MySQL:利用自增长特性,通过 SQL 语句 `SELECT LAST_INSERT_ID()` 获取最后插入行的 ID。 #### 7. 关联关系处理 - **处理方式**:支持多种关联查询方式,包括连接查询和两次查询方式。 - 一对多:使用连接查询或两次查询方式。 - 多对一:使用连接查询或两次查询方式。 - 多对多:使用连接查询或两次查询方式。 - 一对一:使用连接查询或两次查询方式。 #### 8. 分页插件 PageHelper - **实现机制**:PageHelper 是一个 MyBatis 的分页插件,能够简化分页查询的实现。通过在配置文件中启用插件,可以轻松实现对查询结果的分页处理。 通过以上内容的学习,可以对 MyBatis 的基本概念、安装配置、常用操作以及一些高级功能有一个全面的了解。这对于实际项目开发中运用 MyBatis 进行数据持久化有着重要的意义。
剩余21页未读,继续阅读
- 粉丝: 3
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【华为】AI Ready的数据基础设施参考架构白皮书.pdf
- 基于Springboot+Vue智慧校园之家长子系统-毕业源码案例设计(高分毕业设计).zip
- 基于Springboot+Vue智能物流管理系统毕业源码案例设计(高分项目).zip
- 基于Springboot+Vue智能推荐的卫生健康系统毕业源码案例设计(源码+项目说明+演示视频).zip
- 基于Springboot+Vue中小企业设备管理系统-毕业源码案例设计(高分项目).zip
- 基于Springboot+Vue中小企业人事管理系统代码-毕业源码案例设计(源码+项目说明+演示视频).zip
- 以实战为核心,逐步深入 Spring Cloud Alibaba 微服务架构的各个环节,掌握微服务注册与发现、配置管理、限流熔断、分布式事务等核心技术 构建完整的服务治理和网关解决方案,优化系统性能
- 基于Springboot+Vue智能学习平台系统-毕业源码案例设计(源码+论文).zip
- 基于Springboot+Vue卓越导师双选系统设计与实现-毕业源码案例设计(源码+项目说明+演示视频).zip
- 基于Springboot+Vue中药实验管理系统设计与实现-毕业源码案例设计(高分毕业设计).zip
- 基于Springboot+Vue在线商城系统设计与开发毕业源码案例设计(95分以上).zip
- 基于Springboot+Vue在线远程考试系统的设计与实现-毕业源码案例设计(高分项目).zip
- 基于Springboot+Vue在线课程管理系统的设计与实现-毕业源码案例设计(源码+项目说明+演示视频).zip
- 金融经济领域基于缺失数据替换的强化鲁棒过滤与预测方法研究
- 基于Springboot+Vue政府管理会议室预约信访系统设计-毕业源码案例设计(95分以上).zip
- 基于Springboot+Vue知识管理系统毕业源码案例设计(源码+项目说明+演示视频).zip