Java程序员面试之MyBatis相关问题及答案整理

本文详细介绍了MyBatis的分页实现、动态SQL标签及其执行原理,以及如何将SQL结果封装到目标对象。通过RowBounds进行内存分页,使用插件实现物理分页。MyBatis动态SQL包含9种标签,用于逻辑判断和SQL拼接。对象映射有两种方式,通过别名或标签完成。此外,MyBatis的延迟加载仅支持association和collection,利用CGLIB创建代理对象实现。最后,XML映射文件被解析成Configuration对象的相关组件。
摘要由CSDN通过智能技术生成

MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,是Java程序员工作的好帮手,也是企业选拔人才时的常选题。接下来我就给大家介绍MyBatis相关问题及答案。
在这里插入图片描述
1、Mybatis是如何进行分页的?分页插件的原理是什么?

答:Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页,可以在SQL内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。

分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的SQL,然后重写SQL,根据dialect方言,添加对应的物理分页语句和物理分页参数。

举例:select * from student,拦截SQL后重写为:select t.* from (select * from student)t limit 0,10

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

答:Mybatis动态SQL可以让我们在XML映射文件内,以标签的形式编写动态SQL,完成逻辑判断和动态拼接SQL的功能,Mybatis提供了9种动态SQL标签:trim|where|set|foreach|if

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值