Mybatis4

延迟加载sql

缓存数据库

注解开发 缓存

一、Mybatis中的延迟加载
	问题:在一对多中,当咱们有一个用户,它有100个帐户。
	      在查询用户的时候,要不要把关联的帐户查出来?
	      在查询帐户的时候,要不要把关联的用户查出来?
		
	      在查询用户时,用户下的帐户信息应该是,何时使用,何时查询的。
	      在查询帐户时,帐户的所属用户信息应该是随着帐户查询时一块儿查询出来。

	什么是延迟加载
		在真正使用数据时才发起查询,不用的时候不查询。按需加载(懒加载)
	什么是当即加载
		无论用不用,只要一调用方法,立刻发起查询。
	
	在对应的四种表关系中:一对多,多对一,一对一,多对多
		一对多,多对多:一般状况下咱们都是采用延迟加载。
		多对一,一对一:一般状况下咱们都是采用当即加载。

二、Mybatis中的缓存
	什么是缓存
		存在于内存中的临时数据。
	为何使用缓存
		减小和数据库的交互次数,提升执行效率。
	什么样的数据能使用缓存,什么样的数据不能使用
		适用于缓存:
			常常查询而且不常常改变的。
			数据的正确与否对最终结果影响不大的。
		不适用于缓存:
			常常改变的数据
			数据的正确与否对最终结果影响很大的。
			例如:商品的库存,银行的汇率,股市的牌价。
	Mybatis中的一级缓存和二级缓存
		一级缓存:
			它指的是Mybatis中SqlSession对象的缓存。
			当咱们执行查询以后,查询的结果会同时存入到SqlSession为咱们提供一块区域中。
			该区域的结构是一个Map。当咱们再次查询一样的数据,mybatis会先去sqlsession中
			查询是否有,有的话直接拿出来用。
			当SqlSession对象消失时,mybatis的一级缓存也就消失了。
		
		二级缓存:
			它指的是Mybatis中SqlSessionFactory对象的缓存。由同一个SqlSessionFactory对象建立的SqlSession共享其缓存。
			二级缓存的使用步骤:
				第一步:让Mybatis框架支持二级缓存(在SqlMapConfig.xml中配置)
				第二步:让当前的映射文件支持二级缓存(在IUserDao.xml中配置)
				第三步:让当前的操做支持二级缓存(在select标签中配置)
三、Mybatis中的注解开发
	环境搭建
	单表CRUD操做(代理Dao方式)
	多表查询操做
	缓存的配置

相关文章
相关标签/搜索