mybatis-八股文

  1. mybatis的优缺点-※
  2. 优点:
    1.SQL写在XML里面,与业务代码分离,因此相对比较灵活,便于统一管理
    2.spring集成很方便,由于使用的JDBC连接数据库,因此,不需要针对不同数据专门做兼容
    
    缺点:
    SQL的编写,SQL的语法都强关联数据库的类型,因此,无法随意切换数据库
    
  3. mybatis中#{}和${}的区别?
  4. # 的作用是占位符,将Java里面的变量按类型注入进来,可以有效防止SQL注入
    $ 的作用是替换,不能防SQL注入,会在传递到数据库之前,就将内容直接文本替换到对应的位置,可以用于SQL语句不确定的场景[或者说可变]
    
  5. mybatis中的二级缓存
  6. mybatis里面有两级缓存,
    
    一级缓存的生命周期是sqlsession级别的,相当于在sqlsession里面,有一个executor,executor里面有一个localcache对象,每个sqlsession的查询,会优先查看localcache里面有没有,如果没有,再查询数据库
    
    二级缓存的生命周期是跨sqlsession,底层是通过cacheExecutor装饰executor实现的,
    
    这样以后会先查看cacheexecutor里面二级缓存有没有数据,然后,查看localcache里面一级缓存有没有,最后才实时查询数据库
    
  7. mybatis如何进行分页
  8. 分页总体来说就两种: 逻辑分页  物理分页
    
    逻辑分页:数据全部加载到内存,得到分页数据后返回,有OOM风险
    代表:mybatis提供了Rowbounds对象来实现这种方式
    
    物理分页:SQL中拼接了分页参数,数据库仅返回分页数据
    代表:
    1.静态拼接,由开发人员将分页参数拼接到SQL
    2.动态拼接,mybatis提供了分页插件,其原理是通过拦截器,动态在SQL上拼接对应的,例如IPage对象,其中还涉及到数据库二级缓存
    
posted @ 2023-07-07 22:43  356a  阅读(24)  评论(0编辑  收藏  举报