MyBatis
一、基础操作
mybatis-config.xml
关联属性文件
MyBatis特殊配置
配置别名
配置环境
事务
数据源
关联Mapper.xml文件
SqlSessionFactory
SqlSession
CRUD:
selectOne
insert
update
delete
Mapper接口:getMapper
Mapper.xml
ResultMap:
关联关系:association、collection
id
result
动态SQL:
sql / include
where
if
set
foreach
取值:
符号:
#:占位符,不会出现SQL注入
$:直接拼接SQL,会出现SQL注入
单个参数:可以随意写变量名,如果单个参数是简单类型,就直接取值,如果是复杂类型(Map、自定义对象)需要写Map或对象中的key/属性名
多个参数:使用@Param注解标识参数名,或者使用arg0,arg1...或param1,param2...
二、缓存
一级缓存
生命周期是在一个SqlSession中的,key为执行的SQL+参数,也就意味着必须要在同一个sqlSession中执行多条相同的SQL以及参数也相同才能用上一级缓存。
一级缓存是默认开启的,是存在内存中的。
二级缓存
二级缓存是命名空间级别的,可以跨SqlSeesion命中缓存,key同样是SQL+参数,需要自己指定缓存存储介质。
二级缓存需要在对应的Mapper.xml文件中开启。
注意:二级缓存存在一个缺陷,如果跨命名空间做增删改操作,缓存无法检测到,可能出现脏数据的问题。
三、插件(拦截器)
MyBatis提供的一个拓展机制,我们可以通过实现Interceptor接口,来对要执行的SQL语句做拦截处理。
分页插件
性能统计