使命
为了便于持久层操作的维护,通过编写xml(sql相关),提供灵活的数据库访问实现
描述
封装了JDBC
提供了数据库连接池管理
提供了SQL统一管理(XML)
提供了重复SQL语句块的重复利用机制
提供了根据输入参数,动态组成SQL的功能,封装了sql具体执行操作
提供了返回的结果,根据配置,映射到相应类型的机制
提供了数据缓存机制
缺点:
sql针对的是某一具体数据库编写,虽然灵活,同时在数据迁移是,由于数据库的不同,可能需要大量的修改工作
sql编写的灵活性,导致实现功能的同时可能需要编写大量的sql
处理流程
- 根据XML配置文件,创建SqlSessionFactory。
- SqlSessionFactory根据配置创建SqlSession。(xml,注解)
- 获取SqlSession,运行映射的sql语句。
- 完成持久化操作后,关闭SqlSession。
缓存
- 一级缓存 Executor
- 二级缓存 CachingExecutor
Cache:
1. mybatis自定义二级缓存
2. 自定义二级缓存
3. 使用内存数据库的二级缓存
缓存的访问顺序为:二级->一级->数据库