1 概念和渊源
Mybatis是一款支持自定义sql、存储过程、高级映射的持久化框架。本是apache的一个开源iBatis项目,2010年更名为MyBatis,2013年11月迁移到Github。
Mybatis是一个ORM(object relation mapping)对象关系映射框架,用于实现面向对象编程语言里不同类型系统的数据之间的转换,把表映射成实体类,表中字段映射成实体类属性。
2 配置和应用
2.1 需要添加的驱动包
mybatis-3.2.7.jar
mybatis-spring-1.2.0.jar
package .org.apache.ibatis
2.2 配置mapperinitialization.xml
配置SqlSessionFactoryBean,
2.3 实体类,用于映射对象
2.4 mybatis.xml,用于生成sql语句
2.5 接口代码以及实现类
3 如何分页
3.1 使用sql语句limit
3.2 使用插件PageHelper-Spring-Boot-Starter
4 缓存
通过HashMap的缓存实现。
4.1 一级缓存默认开启,不支持配置,SqlSession自带,一旦SqlSession对象被创建,一级缓存就存在了,如果对象关闭或调用清理方法,缓存则失效。
SqlSession之间的一级缓存互相不影响。
4.2 二级缓存是Mapper命名空间的缓存,即每一个mapper都可以拥有一个cache对象。支持跨多个SqlSession对象使用,通过SqlSessionFactory进行管理。可以自动对数据库的查询做缓存,并且可以在更新数据库的同时自动地更新缓存。
4.2.1 方法一
步骤一:全局配置变量参数cacheEnabled true
步骤二:a:Mapper.xml配置标签对
1)一个mapper用一个cache缓存对象<cache/>
2)多个mapper共用一个cache缓存对象<cache-ref/>
b:mapper接口中增加注解@CacheNamespace,@CacheNamespaceRef
步骤三:Sql语句中配置useCache true
4.2.2 方法二 缓存组件,如redis,可以查看已有博文部分章节 Redis
使用场景:查询多,DML少,实时性要求不高