符号转译 :
<![CDATA[
//写在里面即可转译
]]>
大数据批量插入时候,为了防止内存溢出,采用分批处理
自动生成代码时候,如果不删除旧的,它会在原有基础上堆加。
延迟加载 : resultMap可实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。
需求:
如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载
优点:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。
一级缓存(底层就是一个map) :session级别的:自己管理,不用配置;
原理:1、第一次查询时候,去缓存里面取,如果没有,则去数据库查询,并放入;
2、当数据更新时候,清空缓存(此处与hibernate不同,hibernate是更新缓存);再次查询时候,同1。
3、插入时候,同理:查询多条时候,插入一条(insert)此时也是清空对应缓存,保证再次查询多条时候,数据是最新的。
二级缓存:sessionFactory级别的,
需要配置:sqlMapConfig中
原理:
1、先去二级缓存里面看,如果二级缓存里面有数据那么就从二级缓存里面来取数据,如果没有数据那就会发出sql语句,别且把查询出来的结果集放入二级缓存
2、
3、缓存里面有数据了,就直接在二级缓里面取数据就可以了