没有合适的资源?快使用搜索试试~ 我知道了~
首页MyBatis 40道面试题和答案.docx
MyBatis 40道面试题和答案.docx
需积分: 0 0 下载量 45 浏览量
更新于2023-11-21
收藏 25KB DOCX 举报
《MyBatis 40道面试题和答案.docx》是一份文件,其中包含了MyBatis是什么的介绍以及其优缺点、与传统数据库访问技术的对比、和Hibernate的区别。MyBatis是一个半ORM框架,封装了JDBC,使得开发者只需要关注SQL语句本身,而不需要处理繁杂的JDBC过程。MyBatis可以使用XML或注解来配置和映射信息,将POJO映射成数据库记录,避免了大量的JDBC代码和手动设置参数。其优点包括灵活、减少代码量、与各种数据库兼容、提供映射标签和与Spring集成,缺点则是SQL语句编写工作量较大且依赖于数据库。此外,文件还介绍了MyBatis与Hibernate的区别,包括映射关系和配置复杂度。
资源详情
资源推荐
mybatis-config. xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。
3、构造会话工厂:通过 MyBatis 的环境等配置信息构建会话工厂 SqISessionFactory。
4、创建会话对象:由会话工厂创建 SqISession 对象,该对象中包含了执行 SQL 语句的所有方法。
5、Executor 执行器:MyBatis 底层定义了一个 Executor 接口来操作数据库,它将根据 SqISession 传递
的参数动态地生成需要执行的 SQL 语句,同时负责查询缓存的维护。
6、MappedStatement 对象:在 Executor 接口的执行方法中有一个 MappedStatement 类型的参数,该参
数是对映射信息的封装,用于存储要映射的 SQL 语句的 id、参数等信息。
7.输入参数映射:输入参数类型可以是 Map、List 等集合类型,也可以是基本数据类型和 POJO 类
型。输入参数映射过程类似于 JDBC 对 preparedStatement 对象设置参数的过程。
8、输出结果映射:输出结果类型可以是 Map、List 等集合类型,也可以是基本数据类型和 POJO类
型。输出结果映射过程类似于 JDBC 对结果集的解析过程。
MyBatis 的功能架构是怎样的
我们把 Mybatis 的功能架构分为三层:
1、API接口层:提供给外部使用的接口 API,开发人员通过这些本地 API来操纵数据库。接口层一
接收到调用请求就会调用数据处理层来完成具体的数据处理。
2、数据处理层:负责具体的 SQL 查找、SQL 解析、SQL 执行和执行结果映射处理等。它主要的目
的是根据调用的请求完成一次数据库操作。
3、基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些
都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
MyBatis 的框架架构设计是怎么样的
MyBatis 的初始化,会从 mybatis-config. xml 配置文件,解析构造成 Configuration 这个类,就是图中的红
框。
1、加载配置:配置来源于两个地方,一处是配置文件,一处是 Java 代码的注解,
将 SQL 的配置信息加载成为一个个 MappedStatement 对象(包括了传入参数映射配置、执行的 SQL
语句、结果映射配置),存储在内存中。
2、SQL 解析:当 API 接口层接收到调用请求时,会接收到传入 SQL 的 ID 和传入对象(可以是
Map、JavaBean 或者基本数据类型),Mybatis 会根据 SQL 的
ID 找到对应的 MappedStatement,然后根据传入参数对象对
MappedStatement 进行解析,解析后可以得到最终要执行的 SQL 语句和参数。
3、SQL 执行:将最终得到的 SQL 和参数拿到数据库进行执行,得到操作数据库的结果。
剩余15页未读,继续阅读
伟大先锋
- 粉丝: 120
- 资源: 1689
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- IPQ4019 QSDK开源代码资源包发布
- 高频组电赛必备:掌握数字频率合成模块要点
- ThinkPHP开发的仿微博系统功能解析
- 掌握Objective-C并发编程:NSOperation与NSOperationQueue精讲
- Navicat160 Premium 安装教程与说明
- SpringBoot+Vue开发的休闲娱乐票务代理平台
- 数据库课程设计:实现与优化方法探讨
- 电赛高频模块攻略:掌握移相网络的关键技术
- PHP简易简历系统教程与源码分享
- Java聊天室程序设计:实现用户互动与服务器监控
- Bootstrap后台管理页面模板(纯前端实现)
- 校园订餐系统项目源码解析:深入Spring框架核心原理
- 探索Spring核心原理的JavaWeb校园管理系统源码
- ios苹果APP从开发到上架的完整流程指南
- 深入理解Spring核心原理与源码解析
- 掌握Python函数与模块使用技巧
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功