![](https://csdnimg.cn/release/download_crawler_static/88340448/bg1.jpg)
第 1 章
【思考题】
1.请简述什么是 MyBatis?
MyBatis 是一个支持普通 SQL 查询、存储过程以及高级映射的持久层框架,它消除了
几乎所有的 JDBC 代码和参数的手动设置以及对结果集的检索,使用简单的 XML 或注解进
行配置和原始映射,将接口和 Java 的 POJO 映射成数据库中的记录,使得 Java 开发人员可
以使用面向对象的编程思想来操作数据库。
2.请简要介绍 MyBatis 的工作原理。
(1)读取 MyBatis 配置文件 mybatis-config.xml。
(2)由 MyBatis 配置文件加载映射文件 Mapper.xml。
(3)通过 MyBatis 的环境等配置信息构建会话工厂 SqlSessionFactory。
(4)由会话工厂创建 SqlSession 对象。
(5)MyBatis 底层定义了一个 Executor 接口来操作数据库,它会根据 SqlSession 传递
的参数动态的生成需要执行的 SQL 语句。
(6)在 Executor 接口的执行方法中,包含一个 MappedStatement 类型的参数,该参数
是对映射信息的封装。
(7)在执行方法时,MappedStatement 对象会对用户执行 SQL 语句的输入参数进行定
义封装。
(8)在数据库中执行完 SQL 语句后,MappedStatement 对象会对 SQL 执行输出的结果
进行定义封装。
第 2 章
【思考题】
1.请简述<mappers>元素引入映射文件的 4 种方式。
(1)使用类路径引入。
(2)使用本地文件路径引入。
(3)使用接口类引入。
(4)使用包名引入。
2.请简述 MyBatis 映射文件中的常用元素及其作用。
<mapper>:映射文件的根元素,该元素只有一个 namespace 属性(命名空间),namespace
属性作用如下。
(1)用于区分不同的 mapper,全局唯一。
(2)绑定 DAO 接口,即面向接口编程。当 namespace 绑定某一接口之后,可以不用
写该接口的实现类,MyBatis 会通过接口的全限定名查找到对应的 mapper 配置来执行 SQL
语句,因此 namespace 的命名必须跟接口同名。
<cache>: 配置给定命名空间的缓存。
<cache-ref>:从其他命名空间引用缓存配置。
<resultMap>:描述数据库结果集和对象的对应关系。
<sql>:可以重用的 SQL 块,也可以被其他语句使用。