行到水穷处,坐看云起时
mybatis终于要结束了
多个操作同时完成,或同时失败称为事务处理
事务有四个特性:一致性,持久性,原子性,隔离性
例子:
下订单的业务:
以上操作必须都成功,不能单个成功(保证数据库数据一致性)
<transactionManager type="JDBC"></transactionManager>
程序员自己控制处理的提交和回滚
可设置为自动提交
sqlSession = factory.openSession();
默认是手工提交事务,设置为false也是手工提交事务,如果设置为true 则为自动提交
sqlSession = factory.openSession(true);
这样就设置为自动提交了,在增删改后不需要commit()
MyBatis框架提供两级缓存,一级缓存和二级缓存
默认开启一级缓存
很少自己去设置二级缓存
mybatis框架默认提供开启一级缓存(可提高查询效率)
缓存就是为了查询效率
使用缓存后,查询的流程:
一级缓存使用的是SqlSession的作用域,同一个SqlSession共享一级缓存的数据
二级缓存使用的是Mapper的作用域,不同的sqlSession只要访问的是同一个mapper.xml文件,则共享二级缓存作用域
二级缓存的开启方法在资源/文档中可以看到
Object Relational Mapping
对象关系映射
MyBatis框架是ORM非常优秀的框架
java语言中以对象的方式操作数据存到数据库中是以表的方式进行存储,对象中的成员变量与表中的列之间的数据互换,称为映射,
整个这套操作就是ORM(持久化操作)
持久化的操作:将对象保存到关系型数据库中,将关系型数据库中的数据读取出来以对象的形式封装
MyBatis是持久化层优秀的框架
不在pom中指定资源文件就会导致resources目录之外的xml和properties文件读不出来,会丢失