目录
一、动态SQL
二、mybatis的缓存
一、动态SQL
1. 查询条件⾥的动态sql : where if 标签
a.分析图
b.Mapper.xml
c. test测试
2. 更新过程中空值处理需要的标签 : set if 标签
a. Mapper.xml
b. test测试
3.批量删除 --- foreach标签
a.分析图
b.Mapper.xml
c. test测试
二、mybatis的缓存
1.缓存的优势
优势: 牺牲⼀小块空间,换取时间效率,减少数据库的访问次数,提高效率
2. mybatis里的缓存 -- SqlSession级别缓存
特点: 这个缓存不需要程序员任何操作,mybatis默认提供。
生效: 在同⼀个SqlSession里,多次执行同⼀条select命令,此时sqlSession级别缓存生效,只查询⼀次db 随着SqlSession的关闭,缓存以及缓存的数据消失
3. mybatis全局缓存特点
a. mybatis不会默认提供全局缓存,使用时需要在 mapper 文件里声明
b. 全局缓存以 接口(mapper文件中的namespace) 为单位 , 进行数据缓存
1) 同一个接口里的所有查询方法查询到的数据会被缓存到一个数据块里
2) 不同接口里的查询方法获取到的数据,缓存在不同的数据块里
c. 当执行查询功能的session关闭时,查询到的数据进入缓存 当session执行了接口的增删改功能
后,提交时commit,对应接口缓存的数据会被清空。



