1、什么是MyBatis?
答:MyBatis是一个可以自定义SQL、存储过程和高级映射得持久层框架。
2、Mybatis是如何进行分页的?分页插件的原理是什么?
答: 1)Mybatis使用RowBounds对象进行分页,也可以直接编写sql实现分页,也可以使用Mybatis的分页插件。
2)分页插件的原理:实现Mybatis提供的接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql。 举例:select * from student,拦截sql后重写为:select t.* from (select * from student)t limit 0 ,10
3、Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不?
答: 1)Mybatis动态sql可以让我们在Xml映射文件内,以标签的形式编写动态sql,完成逻辑判断和动态拼接sql的功能。
2)Mybatis提供了9种动态sql标签:trim|where|set|foreach|if|choose|when|otherwise|bind。
3)其执行原理为,使用OGNL从sql参数对象中计算表达式的值,根据表达式的值动态拼接sql,以此来完成动态sql的功能。
4、#{}和KaTeX parse error: Expected 'EOF', got '#' at position 20: …别是什么? 答: 1)#̲{}是预编译处理,{}是字符串替换。
2)Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;
3)Mybatis在处理 时 , 就 是 把 {}时,就是把 时,就是把{}替换成变量的值。
4)使用#{}可以有效的防止SQL注入,提高系统安全性。
5、为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
答:Hibernate属于全自动ORM映射工具,使用Hibern