### 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币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot和Vue的后台管理系统.zip
- 用于将 Power BI 嵌入到您的应用中的 JavaScript 库 查看文档网站和 Wiki 了解更多信息 .zip
- (源码)基于Arduino、Python和Web技术的太阳能监控数据管理系统.zip
- (源码)基于Arduino的CAN总线传感器与执行器通信系统.zip
- (源码)基于C++的智能电力系统通信协议实现.zip
- 用于 Java 的 JSON-RPC.zip
- 用 JavaScript 重新实现计算机科学.zip
- (源码)基于PythonOpenCVYOLOv5DeepSort的猕猴桃自动计数系统.zip
- 用 JavaScript 编写的贪吃蛇游戏 .zip
- (源码)基于ASP.NET Core的美术课程管理系统.zip