MyBatis面试题

目录

MyBatis简介

MyBatis是什么?

ORM是什么

为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?

传统JDBC开发存在的问题

JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?

Mybatis优缺点

MyBatis框架适用场景

Hibernate 和 MyBatis 的区别

MyBatis的解析和运行原理

MyBatis编程步骤是什么样的?

请说说MyBatis的工作原理

MyBatis的功能架构是怎样的

MyBatis的框架架构设计是怎么样的

为什么需要预编译

Mybatis都有哪些Executor执行器?它们之间的区别是什么?

Mybatis中如何指定使用哪一种Executor执行器?

Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?

映射器

#{}和${}的区别

模糊查询like语句该怎么写

在mapper中如何传递多个参数

Mybatis如何执行批量操作

如何获取生成的主键

当实体类中的属性名和表中的字段名不一样 ,怎么办

Mapper 编写有哪几种方式?

什么是MyBatis的接口绑定?有哪些实现方式?

使用MyBatis的mapper接口调用时有哪些要求?

最佳实践中,通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗

Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?

简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?

Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?

Mybatis映射文件中,如果A标签通过include引用了B标签的内容,请问,B标签能否定义在A标签的后面,还是说必须定义在A标签的前面?

高级查询

MyBatis实现一对一,一对多有几种方式,怎么操作的?

Mybatis是否可以映射Enum枚举类?

动态SQL

Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不?

插件模块

Mybatis是如何进行分页的?分页插件的原理是什么?

简述Mybatis的插件运行原理,以及如何编写一个插件。

缓存

Mybatis的一级、二级缓存


MyBatis简介

MyBatis是什么?

ORM是什么

为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?

传统JDBC开发存在的问题

JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?

Mybatis优缺点

MyBatis框架适用场景

Hibernate 和 MyBatis 的区别

 

MyBatis的解析和运行原理

MyBatis编程步骤是什么样的?

请说说MyBatis的工作原理

MyBatis的功能架构是怎样的

JDBC API 允许用户访问任何形式的表格数据,尤其是存储在关系数据库中的数据。

MyBatis的框架架构设计是怎么样的

为什么需要预编译

数据库管理系统(Database Management System)

Mybatis都有哪些Executor执行器?它们之间的区别是什么?

Mybatis中如何指定使用哪一种Executor执行器?

Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?

 

映射器

#{}和${}的区别

模糊查询like语句该怎么写

在mapper中如何传递多个参数

Mybatis如何执行批量操作

如何获取生成的主键

当实体类中的属性名和表中的字段名不一样 ,怎么办

Mapper 编写有哪几种方式?

什么是MyBatis的接口绑定?有哪些实现方式?

使用MyBatis的mapper接口调用时有哪些要求?

最佳实践中,通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗

Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?

简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?

Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?

Mybatis映射文件中,如果A标签通过include引用了B标签的内容,请问,B标签能否定义在A标签的后面,还是说必须定义在A标签的前面?

 

高级查询

MyBatis实现一对一,一对多有几种方式,怎么操作的?

Mybatis是否可以映射Enum枚举类?

 

动态SQL

Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不?

 

插件模块

Mybatis是如何进行分页的?分页插件的原理是什么?

简述Mybatis的插件运行原理,以及如何编写一个插件。

 

缓存

Mybatis的一级、二级缓存

crud是指在做计算处理时的增加(Create)、读取(Retrieve)、更新(Update)和删除(Delete)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis一个开源的持久层框架,它可以数据库操作与Java对象之间的映射关系进行配置,简化了数据库操作的编过程。下面是一些常见的MyBatis面试题及其答案: 1. 什么是MyBatisMyBatis一个持久层框架,它可以将数据库操作与Java对象之间的映射关系进行配置,简化了数据库操作的编过程。 2. MyBatis的优点有哪些? - 简化了数据库操作的编过程,提高了开发效率。 - 提供了灵活的SQL映射配置,可以满足各种复杂的查询需求。 - 支持动态SQL,可以根据不同的条件生成不同的SQL语句。 - 提供了缓存机制,可以提高查询性能。 - 与Spring等框架集成较为方便。 3. MyBatis的核心组件有哪些? MyBatis的核心组件包括: - SqlSessionFactory:用于创建SqlSession对象的工厂。 - SqlSession:用于执行SQL语句和管理事务。 - Mapper接口:定义了数据库操作的方法。 - Mapper XML文件:配置了SQL语句和结果映射关系。 4. MyBatis中的动态SQL是什么? 动态SQL是指根据不同的条件生成不同的SQL语句。MyBatis提供了一些标签(如if、choose、foreach等)来实现动态SQL的编,可以根据条件判断、循环等来动态生成SQL语句。 5. MyBatis的一级缓存和二级缓存有什么区别? - 一级缓存是SqlSession级别的缓存,它默认开启且不可关闭。在同一个SqlSession中,如果执行了相同的查询语句,那么第二次以后的查询直接从缓存中获取结果,而不再去数据库查询。 - 二级缓存是Mapper级别的缓存,它可以跨SqlSession共享。当多个SqlSession执行相同的查询语句时,如果开启了二级缓存,那么第二次以后的查询直接从缓存中获取结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值