Mybatis知识点无序整理
1、Mybatis 中$与#号的区别
①首先明白${}底层实现的相当于是JDBC中的statement,即字符串的+号;然而#{}相当去preparestatement,即问号占位符
②我们通常的回答是推荐使用#{},因为它可以防止sql注入
③还有一点是,在模糊查询时我们推荐使用的是${},因为#{}会在参数类型是string的时候,默认拼接反斜杠,处理麻烦。
④${}其实是OGNL 对象图表达式(了解过struts2的伙伴会知道)所以可以使用的方式如${user.name},但是#{}底层是通过反射获取data
2、Mybatis的延迟加:在Mybatis的全局配置文件中,通过<settings>标签进行设置。
3、PageHelper分页插件,目前支持所有的关系型数据库。在xml中添加依赖就行了。
具体添加信息如下:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.6</version>
</dependency>
使用时的具体代码如下:
通过PageInfo获取分页的具体信息:
4、Mybatis缓存:Mybatis的一级缓存是sqlsession ,二级缓存是namespace级别的,二级缓存需要实例化,实例序列化(具体还有二级缓存的刷新、开关)