MyBatis是一个用Java语言编写的持久层框架,其封装了JDBC的操作细节,使得开发者只需关注SQL语句本身,而无需关注注册驱动,创建连接等繁琐重复的过程。MyBatis框架使用了ORM(Object Relational Mapping)的思想来实现结果集的封装。(ORM简单说就是将数据库表与实体类及类的属性对应起来,通过操作实体类来操作数据库)
MyBatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
MyBatis封装了JBDC底层访问数据库的细节,使我们程序猿不需要与JDBC API打交道,就可以访问数据库
MyBatis简单易学,程序猿直接编写SQL语句,适合于对SQL语句性能要求比较高的项目
SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度
SQL代码从程序代码中彻底分离出来,可重用
提供了动态SQL标签,支持编写动态SQL
提供映射标签,支持对象与数据库的ORM字段关系映射
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库
支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
Mybatis 和 Mybatis Plus 的区别
MyBatis:
所有SQL语句全部自己写
手动解析实体关系映射转换为MyBatis内部对象注入容器
不支持Lambda形式调用
Mybatis Plus:
强大的条件构造器,满足各类使用需求
内置的Mapper,通用的Service,少量配置即可实现单表大部分CRUD操作
支持Lambda形式调用
提供了基本的CRUD功能,连SQL语句都不需要编写
自动解析实体关系映射转换为MyBatis内部对象注入容器