MyBatis 理解

  1. MyBatis 简介
    MyBatis 是一个半自动的ORM框架,支持原生的SQL语句,内部封装了JDBC,无需处理加载驱动、创建连接等过程。支持XML文件或者注解配置关系映射。MyBatis执行sql并将结果映射为Java对象并返回

  2. MyBatis 适用场景

  • 专注于SQL本身,提供灵活的DAO层解决方案
  • 对性能要求高、或者需求变化频繁的项目
  1. MyBatis 优缺点
  • 支持SQL原生语句编程、灵活,减少50%代码量,支持多种数据库,能够与Spring集成
  • 编写的SQL工作量大,对SQL编程能力有要求,数据库迁移成本高
  1. MyBatis 涉及核心接口类
  • SqlSessionFactoryBuilder
  • SqlSessionFactory
  • SqlSession
  1. MyBatis 支持一级缓存、二级缓存
  • 一级缓存 HashMap本地缓存,作用域为Session 当Session flush或close后 清空缓存
  • 二级缓存 默认不开启,作用域为Mapper(namespace),可自定义缓存源,如:Ehcache
  1. MyBatis Mapper接口调用原理
    Mapper接口的工作原理是JDK动态代理,运行时为Mapper接口生成代理对象Proxy,代理对象拦截mapper接口方法,执行MapperStatement代表的sql语句,并返回执行结果,xml文件每个Id会生成MapperStatement

  2. MyBatis 支持动态sql
    通过标签实现动态拼接sql语句,标签如:<trim> <where> <set> <foreach> <if>

  3. MyBatis 与 Hibernate 区别

  • MyBatis 是半自动的ORM框架,需要自己编写SQL语句,灵活性高,但工作量大
  • Hibernate 关系对象映射能力强,与数据库无关,更多的减少代码量,提高效率
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。