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