- ${} 与 #{} 区别
#{} :表示一个占位符号
通过 #{} 可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入。
#{} 可以接收简单类型值或pojo属性值。
如果parameterType传输单个简单类型值, #{} 括号中名称随便写。
${} **:**表示拼接ql串
通过 ${} 可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换,会出现sql注入问题。
${} 可以接收简单类型值或pojo属性值。
如果parameterType传输单个简单类型值, ${} 括号中只能是value。
- 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应, 请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法, 参数不同时,方法能重载吗?
在 Mybatis 中,每一个标签,都会被解析为一个MapperStatement 对象。
3.Mybatis如何进行分页?Mybatis分页插件的原理是什么?
- 使用Mybatis里面的第三方插件,
- 使用方式:在将要执行的sql语句之前使用分页插件:pageHelper.starPage(pageNum,pageSize);
- pageNum:表示的是页码,也就是说有多少页
- pageSize:就是一个页中显示几条数据(数量)
- 使用Mybatis插件(也称为拦截器)机制。对需要使用分页的功能进行增强,也就是重写sql语句,根据不同的数据生产不同的分页语句
- mysql会生产limit语句
- MyBatis中XML 映射文件中常见的标签
SQL 映射文件只有很少的几个顶级元素(按照应被定义的顺序列出):
cache – 对给定命名空间的缓存配置。
cache-ref – 对其他命名空间缓存配置的引用。
resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。
parameterMap – 已被废弃!老式风格的参数映射。更好的办法是使用内联参数,此元素可能在将来被移除。
sql – 可被其他语句引用的可重用语句块。
insert – 映射插入语句
update – 映射更新语句
delete – 映射删除语句
标签:语句,面试题,分页,映射,常见,插件,sql,Mybatis From: https://blog.51cto.com/u_13529088/8925869