• 什么是MyBatis?

MyBatis is a Java persistence framework that couples objects with stored procedures or SQL statements using an XML descriptor or annotations.

备注:SQL statements是指SQL的增删改查操作

Unlike ORM framwork, MyBatis does not map Java objects to database tables but Java methods to SQL statements.

备注:Java methods to SQL statements 是指通过模板映射,例如Spring Boot Thymeleaf引擎

  • MyBatis解决了什么问题?
  • 自带缓存机制
  • 分离SQL与Java
  • 增加代码开发效率,mapper.xml中写sql语句

Hibernate 将对象与表映射关联,MyBatis将SQL与对象映射关联。(此处表述可能不准确,主要强调Hibernate与MyBatis不同。)

  • MyBatis的特点

    -  MyBatis 是一款优秀的持久层框架,支持定制化 SQL、存储过程以及高级映射。

    -  MyBatis 对JDBC的操作教据库的过程进行封装, 使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建 connection、创建statement、手动设罝参数、结果检索等jdbc繫杂的过程代码。

    -  MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

    -  MyBatis 使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

    -  Mybatis 通过xml或注解的方式将要执行的各种statement(statement、preparedStatement, CallableStatement)配罝起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由Mybatis框架执行sql幷将结果映射成java对象幷返回。

    -  MyBatis 让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句。

传统的SSM框架使用MyBatis配置大量的XML,而在Spring Boot中,MyBatis提供了一套自动化配置方案,可以做到MyBatis开箱即用。