1.Mybatis是如何进行分页?分页插件原理是什么?
mybaits是使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页。有分页插件实现物理分页
2.Xml映射文件除了常见的insert/update/delete/select之外,还有那些标签?
有很多,动态sql中trim|where|set|foreach|if|choose|when|otherwise|bind标签
3.Mybatis映射文件中,如果A标签includeB标签,请问Mybatis如何解析该文件
mybatis扫描xml是按照顺序解析的。被引用B标签放在xml任何位置都是可以被解析的
原理是 按照顺序依次解析A标签,发现A引用了B标签。但B未解析到,此时,此时Mybatis把A标记为未解析状态,继续解析余下的标签,等到解析完毕后,再回到未解析标签重新解析。
4.${}与#{}的区别是什么?
#{}是预编译处理,${}字符串替换的
处理#{}时,会将#{}替换为?,调用PreparedStatement的set方法来赋值;
处理${},会把${}替换为变量的值。
#{}可以防止sql注入,有效提交系统安全性