mybitsCSDN详解
mybits注解
①延迟加载
②缓存管理
基本概念
一级缓存概念(默认开启,无法关闭)
增删改操作会刷新一级缓存(清空)(防止读藏数据)
底层也是map集合
//key: hashCode + statementId + SQL
//value: 查询结果
二级缓存(默认关闭,必须开启)包括两类,
一.内置二级缓存
1,开启方式分为两步使用方法
Ⅰ,在映射文件中添加
Ⅱ,操作的实体类要实现Serializable接口
增删改操作问题
Ⅰ,增删改操作会刷新二级缓存(实质上是将二级缓存中的所有Entry对 象的value置为null,并未删除整个Entry对象,而key仍然保留)
Ⅱ,到底何时执行DB的Select查询?
// 有两种情况可以到DB中执行真正的查询
//①Map中根本就不存在要查询的Entry,既没有Entry
//②Map中存在要查询的key,但其value为null
Ⅲ 增删改操作默认可以影响二级缓存,但也可以让其不影响,只需在增删改的Statement中添加flushCache=”false”属性即可
2,二级缓存使用原则
①,不要出现多个namespace操作一张表的情况,
②,对关联关系不要出现增删改操作,
③,当查询擦偶哦多余增删改操作时可以使用二级缓存,
3,二级缓存的关闭分为俩类
1)全局性关闭:当前应用中所有的语句均不能使用二级缓存
操作是在配置文件中的settings标签中cacheEnable值设为false
2)局部性关闭:可以指定某一个查询不适用二级缓存
操作是在Select语句中添加useCache属性即可关闭,不影响其它语句
二,外置第三方缓存产品
**1,EHCache二级查询缓存(在mybatis官网下载后导入JAR包)**<br />** ** 其开启方式分为两步使用方法<br /> Ⅰ,导入两个jia包:ehcache核心jia包和mybits于ehcache整合的jar包<br /> Ⅱ,在映射文件中添加<cach type="**名字**"/>标签<br /> <br /> **2,二级缓存的关闭分为俩类**<br /> 1)全局性关闭:当前应用中所有的语句均不能使用二级缓存<br /> 操作是在配置文件中的settings标签中cacheEnable值设为false<br /> 2)局部性关闭:可以指定某一个查询不适用二级缓存<br /> 操作是在Select语句中添加useCache属性即可关闭,不影响其它语句<br />
注解
动态查询通过注解实现
id=#{id} 相当于 动态SQL中的 1=#{1}
动态SQL(实现了更改了某些项其它不动)相当于在拼写SQL语句
利用实例代码块解决不知道SQL类名字的问题