Mybatis:
1.手动解析实体关系映射转换为MyBatis内部对象注入容器
所有的sql语句都需要程序员手动编写
不支持Lambda语句的使用
MybatisPlus:
层和service层继承并且封装了大部分简单的CRUD操作,通过少量的配置就可以直接实现CRUD操作
2.提供了简单的CRUD操作,不需要程序员手动的去编写sql语句
3.自动解析实体关系映射转换为MyBatis内部对象注入容器
4.支持Lambda语句的使用
通过的条件构造器可以实现复杂的业务需求
MyBatis的优缺点:
优点:
1.底层封装了JDBC和API的调用细节,并能够自动的把运行结果转换成java bean对象,这样子可以大大的减少了程序员对java数据库的重复操作
可以把sql语句的模块单独从java源项目中分离出来,并在xml文件中编写sql语句,这样子可以大大便利于程序的维护
3.由于Mybatis的所有的sql语句都是手动编写的,所以他根据不同的需求可以灵活的变通sql语句,所以他的查询效率很快
4.他提供各种动态sql标签,动态的关联多张表进行查询,是查询更加的方便
缺点:
1.由于每个需求需要手写sql语句,加重了程序员开发的负担
2.在xml中id必须是惟一的,否则导致DAO中方法不支持方法重载
MyabtisPlus的优点:
1.简单的单表查询的CRUD操作不需要手动去编写sql语句,可直接通过少量配置来调用方法实现
2.内置分页插件:基于 Mybatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List查询。
3.支持代码的生成,可通过代码来自动快速生成 Mapper 、 Model 、 Service 、 Controller 层代码
4.仅仅依赖 Mybatis 以及 Mybatis-Spring
缺点:
1.如果要实现多表联查的业务需求,会比mybatis更加的复杂
2.项目引入第三方插件包,未来升级有一定的兼容性问题。