符号转译 :
    image.png
    <![CDATA[
    //写在里面即可转译
    ]]>
    大数据批量插入时候,为了防止内存溢出,采用分批处理
    image.png
    自动生成代码时候,如果不删除旧的,它会在原有基础上堆加。
    延迟加载 : resultMap可实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。
    需求:
    如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载
    优点:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。

    一级缓存(底层就是一个map) :session级别的:自己管理,不用配置;
    原理:1、第一次查询时候,去缓存里面取,如果没有,则去数据库查询,并放入;
    2、当数据更新时候,清空缓存(此处与hibernate不同,hibernate是更新缓存);再次查询时候,同1。
    3、插入时候,同理:查询多条时候,插入一条(insert)此时也是清空对应缓存,保证再次查询多条时候,数据是最新的。
    二级缓存:sessionFactory级别的,
    需要配置:sqlMapConfig中mapper中
    原理:
    1、先去二级缓存里面看,如果二级缓存里面有数据那么就从二级缓存里面来取数据,如果没有数据那就会发出sql语句,别且把查询出来的结果集放入二级缓存
    2、中flushCache=true修改当前查询出来的数据,会把缓存里面的数据清掉
    3、缓存里面有数据了,就直接在二级缓里面取数据就可以了