什么是 MyBatis ?
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
mybatis和hibernate的比较
mybatis的缓存
文字描述:
- 每个SqlSession对象都有一个缓存区,缓存了最近的操作的数据,同样的数据被连续操作时,只有第一次
- 会操作数据,后面几次直接从缓存区获取,提升数据库操作效率,降低IO操作。如果开启Factory缓存,
- 则当SqlSession对象被关闭或者提交的时候,会将其缓存的数据刷入到factory的缓存区中,同一个factory
- 创建的其他SqlSession对象,在操作相同的数据的时候,可以从factory中直接获取,降低io操作,提升效率。
- 注意:
- 判断操作的是同一份数据的标准:连续调用同一个Mapper标签。
- 调用的是不同的标签,就算SQL语句一致,也会认为是两次不同的操作。