### MyBatis复习笔记知识点详解 #### 一、MyBatis概述 1. **定义**:MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的工作。 2. **特点**: - **简化JDBC开发**:通过XML或注解的方式将要执行的各种陈述性SQL语句配置在映射文件中;通过简单的XML或注解进行模型封装,从而达到不编写任何DAO层的Java代码,做到全自动化的DAO层代码工作。 - **对象关系映射(ORM)框架**:提供了一种将数据库表字段和对象属性进行映射的技术,使得开发人员可以使用面向对象的方式来操作数据库。 3. **与Hibernate的对比**: - **开发成本**:相较于Hibernate,MyBatis的开发成本更低,因为它更偏向于SQL语句的手动编写,而Hibernate则更加强调全自动化。 - **性能**:对于数据量较大且关系复杂的业务场景,MyBatis的性能表现通常优于Hibernate,因为Hibernate在处理复杂查询时可能会遇到性能瓶颈。 4. **历史沿革**: - **前身**:MyBatis最初叫做iBatis,是由Clinton Begin创建的。 - **发展**:2010年,Google接管了iBatis项目并将其更名为MyBatis,并在GitHub上托管。 5. **体系结构**: - **配置文件**:`mybatis-config.xml` 或 `sqlMapConfig.xml`,用于配置数据库连接信息、声明映射文件路径等。 - **映射文件**:每个Mapper接口都有一个对应的XML映射文件(例如 `UserMapper.xml`),这些文件包含了具体的SQL语句及其参数类型和返回类型。 - **Mapper接口**:包含抽象方法,这些方法的实现依赖于映射文件中的SQL语句。 6. **获取途径**: - **官方地址**:[https://github.com/mybatis/mybatis-3/releases](https://github.com/mybatis/mybatis-3/releases) - **参考资料**:《MyBatis in Action》和官方提供的《参考手册》。 #### 二、MyBatis入门案例 1. **开发步骤**: - **导包**:将MyBatis相关的jar包添加到项目中。 - **编写配置文件**:创建 `mybatis-config.xml` 文件,配置数据库连接信息。 - **定义实体类**:为数据库表设计对应的Java实体类。 - **编写Mapper接口**:定义用于操作数据库的方法签名。 - **编写映射文件**:为Mapper接口中的每个方法编写具体的SQL语句。 - **编写Service层**:实现业务逻辑。 - **编写单元测试**:验证功能是否按预期工作。 2. **配置示例**: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///mybatis_1"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> </configuration> ``` #### 三、MyBatis的基本配置 1. **SQL片段抽取**: - 使用 `<sql>` 标签定义可重用的SQL片段,方便后续复用。 - 示例: ```xml <sql id="userColumnList"> user_id AS id, user_name as name, password, salary, birthday </sql> ``` - 在其他SQL语句中引用该片段: ```xml <include refid="userColumnList"/> ``` 2. **ResultMap**: - `<resultMap>` 用于定义映射规则,特别适用于复杂的一对多或多对多关系。 - 示例: ```xml <resultMap id="UserRM" type="User"> <id property="id" column="user_id"/> <result property="name" column="user_name"/> <result property="password" column="password"/> <result property="salary" column="salary"/> <result property="birthday" column="birthday"/> </resultMap> <select id="findAll1" resultMap="UserRM"> SELECT * FROM mybatis_user </select> ``` 以上内容覆盖了MyBatis的基础知识,包括其定义、特点、与Hibernate的比较、历史沿革、体系结构、获取方式、入门案例的开发步骤及配置示例、基本配置如SQL片段抽取和ResultMap的使用。希望对你有所帮助!
剩余14页未读,继续阅读
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助