MyBatis使用笔记

MyBatis 使用笔记

1、typeAliases 配置细节

 1)使用配置项 [ <package name="domain.blog"/> ] 时,会自动注册设定的包及其子包下的所有类
 2)在Mapper文件中使用别名时,mybatis对别名的查找不区分大小写

2、对于返回结果为集合类查询,resultType为集合元素的类型,而非集合的类型

3、MyBatis的缓存分为:一级缓存(local cache)  及  二级缓存(global cache), 缓存的相关细节可以打印日志的方式进行验证,简要说明:

  1)一级缓存为SqlSession级;二级缓存为全局,但命名空间相互独立

  2)一级缓存默认开启;二级缓存默认不生效,需在Mapper文件中添加<cache />子项,缓存的元素需可序列化,具体说明可参考 mybatis 缓存(cache)的使用

  3)搜索的顺序为先二级缓存,后一级缓存,框架图如下:

            

4、mybatis在select一张表时,如果无查询结果,则:

  1)查询结果为对象时,返回结果为null

  2)查询结果为List时,返回结果为size=0的空集合

5、mybatis默认启用local cache,对于相同输入的查询进行缓存,从而提高效率,因此,

  1)同一session的相同查询不会影响效率,可以充分利用这一点优化代码结构

  2)不要修改mybatis的返回结果,以免影响缓存值,详细说明见:MyBatis > Java API > Local Cache

  3)与spring一起使用时,须开启spring事务,local cache才能生效,详细可参考spring结合mybatis时一级缓存失效问题

 6、如何指定mybatis mapper bean name? 方法是使用 org.springframework.stereotype.Component 或 javax.inject.Named 注解

原文地址:https://www.cnblogs.com/MattCheng/p/8024096.html