一,增删改
1,先写一个实体类(Supplier)
2,建一个mapper接口(SupplierMapper)
3,建一个mapper接口实现类(SupplierMapper.xml)
4,建一个测试类(SupplierMapperText)
二,一级缓存和二级缓存
1,
一级缓存(Local Cache) 一级缓存是MyBatis默认开启的缓存机制。它是指在同一个SqlSession内部的多次查询中,如果查询条件相同,则只会发送一次SQL语句到数据库,并将查询结果缓存起来。当再次执行相同的查询时,直接从缓存中获取结果,而不再去数据库查询。
一级缓存的作用域非常短暂,仅限于同一个SqlSession内部。当SqlSession被关闭、提交或回滚时,一级缓存也会被清空。因此,对于涉及到多个SqlSession的操作,一级缓存并不会生效。
2,
二级缓存(Global Cache) 二级缓存是一个跨SqlSession的缓存机制,可以在不同的SqlSession之间共享缓存数据。它的作用范围更广,可以跨多个SqlSession进行数据共享。
二级缓存需要手动配置,在MyBatis的配置文件中进行设置。通过开启二级缓存,可以将查询结果缓存到内存中,当下次需要相同数据时,直接从缓存中读取,避免了频繁的数据库查询操作,提升了系统性能。
需要注意的是,由于二级缓存是跨SqlSession的,因此需要保证被缓存的数据是可序列化的。同时,对于更新操作(如插入、更新、删除),MyBatis会自动更新相应的缓存数据。
总结起来,一级缓存适用于单个SqlSession内的查询操作,而二级缓存则适用于多个SqlSession之间的数据共享。根据实际需求,可以选择合适的缓存机制来提升系统性能。
二级缓存配置 要配置二级缓存,需要在MyBatis的配置文件(通常是mybatis-config.xml)中进行如下设置:
- 在
<configuration>
标签下添加<settings>
标签。 - 在
<settings>
标签内添加<setting name="cacheEnabled" value="true"/>
,启用二级缓存。
此外,还需要在每个需要使用二级缓存的映射文件(Mapper XML)中进行配置。在映射文件的根元素(<mapper>
)上添加 cache
属性,并指定对应的缓存实现类。