一、多对多关联关系查询处理
- 表的设计
注意: 多对多其实可以拆分为两个一对多。
二、Mybatis中的动态SQL机制 【重点】
- SQL片段 : 我们可以将多个SQL语句涉及到重复使用的信息,定义为一个SQL片段,提高代码的复用性。
- where动态SQL子句
- set子句动态SQL
- trim
4.1 实现where动态查询子句
4.2 实现set动态SQL子句 - foreach
- choose
三、Mybatis中的缓存机制 【面试点】
-
什么是缓存机制(cache) : 缓存是指将查询的数据放到内存中存储的一种优化项目的机制。
-
使用缓存机制的好处
2.1 加入缓存后, 可以减轻后端数据库服务器的压力。
2.2 缓存是基于内存存储操作数据, 提高了系统的查询性能。 -
Mybatis框架的缓存机制
3.1 缓存分类:
① 一级缓存: 一级缓存是基于同一个SqlSession执行的操作可以共享数据。默认开启的。
② 二级缓存: 二级缓存是基于同一个SqlSessionFactory执行的操作可以共享数据。默认关闭的。
3.2 一级缓存演示:
注意: 关闭一级缓存,在mybatis-config.xml中可以配置关闭:
3.3 二级缓存 : 默认是关闭的,需要手动在mybatis-config.xml中开启。
① 开启二级缓存
② 在指定的mapper文件中使用二级缓存:
③ 使用二级缓存的注意事项:
1) 二级缓存数据共享范围是同一个SqlSessionFactory下的
2 ) sqlSession使用完毕,要手动关闭,否则mybatis不会像缓存中存数据。
3 ) 涉及到的实体类的对象,要实现序列化接口 Serializable 。 -
脏读
注意: Mybatis中在执行了写操作提交事务后, 会对操作的数据在缓存中清除,然后保证下次查询的数据与数据库数据是同步的。