Mybatis学习笔记(四)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

JNDI

  • JNDIJava Naming and Directory Interface
  • 模仿windows系统中的注册表
  • key存的是路径加名称directory是固定的name是可以自己指定的
  • value存的是数据要存放什么对象是可以指定的指定的方式是通过配置文件的方式

mybatis中的延迟加载

  • 问题在一对多中当我们有一个用户它有100个账户
  • 在查询用户时用户下的账户信息应该是什么时候使用什么时候查询
  • 在查询账户时账户的所属用户信息应该是随着账户查询时一起查询出来
  • 延迟查询在真正使用数据时才发起查询不用的时候不查询按需加载懒加载
  • 立即查询不管用不用只要一调用方法马上发起查询
  • 一对多、多对多通常情况下采用延迟加载
  • 多对一、一对一通常情况下采用立即加载

mybatis中的缓存

  • 缓存存在于内存中的临时数据
  • 为什么使用缓存减少和数据库的交互次数提高执行效率
  • 什么样的数据能使用缓存什么数据不能
    • 适用于缓存
      • 经常查询且不经常该表的
      • 数据的正确与否对最终结果影响不大的
    • 不适用于缓存
      • 经常改变的数据
      • 数据的正确与否对最终结果影响很大的
      • 例如商品的库存、银行的汇率、股市的牌价
  • 一级缓存
    • 它指的时mybatis中SqlSession对象的缓存
    • 当我们执行查询之后查询的结果会同时存入到SqlSession为我们提供一块区域中该区域的结构是一个Map。当我们再次查询同样的数据mybatis会先去sqlsession中查询是否有有的话直接拿出来用
    • 当SqlSession对象消失时mybatis的一级缓存也就消失了
  • 二级缓存
    • 它指的是mybatis中SqlSessionFactory对象的缓存。由同一个SqlSessionFactory对象创建的SqlSession共享其缓存
    • 二级缓存的使用步骤
      • 1.让mybatis框架支持二级缓存在SqlMapConfig.xml中配置
      • 2.让当前的映射文件支持二级缓存在IUserDao.xml中配置
      • 3.让当前的操作支持二级缓存在select标签中配置
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6