MyBatis知识点

Mybatis的优缺点

优点:

  1. 原生sql
  2. sql语句与代码解耦合
  3. 简单易学
  4. 原生的sql语句,sql调优灵活

缺点:

  1. 半自动ORM,不能自动sql语句
  2. sql语句依赖于具体数据库,数据性移植差

Mybatis缓存机制

一级缓存

  1. 作用域是Session,会对同一个Session中执行语句的结果进行缓存,来提高再次执行的效率
  2. 内部通过HashMap实现
  3. 默认开启

二级缓存

  1. 作用域是Mapper(namespace),在同一个namespace中查询sql时,可以从缓存中获取数据
  2. 二级缓存可以跨SqlSession生效,并且可以自定义存储源,比如:ehcache等缓存实现
  3. 可配置剔除策略、刷新时间、缓存数量等进行优化

问:请介绍一下Mybatis的缓存机制

Mybatis的具体使用相关

  1. Mybatis是如何预防Sql注入的?利用变量占位符:#{},进行sql预编译
  2. Mybatis怎么获取自增id?
  3. 动态Sql标签:如何配置?有哪些?

Mybatis的主要对象及其相应的作用

  1. SqlSessionFactory是用来创建SqlSession的工厂类,对应配置文件中的数据库配置
  2. SqlSession:对数据库的操作是在SqlSession中进行的,SqlSession非线程安全,每次调用数据库后都需要调用close进行关闭
  3. Executor:SqlSession通过内部的Executor来进行增删改查操作
  4. StatementHandler:用来处理sql语句的预编译,设置参数
  5. ParameterHandler:用来设置预编译参数
  6. ResultSetHandler:用来处理结果集
  7. TypeHandler:进行数据库类型和JavaBean类型的互相映射

Mybatis的插件机制

  1. 插件机制是通过拦截器组成责任链对Executor、StatementHandler、ParameterHandler、ResultSetHandler四个作用点进行定制化处理
  2. 基于插件机制实现的常用插件:mybatis-pagehelper

Mybatis的执行流程 这里

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章