当前位置:   article > 正文

Mybatis和Mybatis plus对比_mbatiesplus与mybaties

mbatiesplus与mybaties

首先推荐几个写的好的博客,这里我就不详细写了。

MyBatis与MyBatis-Plus的区别详解_java_脚本之家

MyBatis与MyBatis-plus的区别_mybatis 和 mybatis plus的区别-CSDN博客

Mybatis和Mybatis plus_mybatis和mybatisplus-CSDN博客

Mybatis-Plus详解_mybatisplus-CSDN博客

1,介绍: 

MyBatis前身是iBatis,是Clinton Begin在2001年发起的一个开源项目。最初侧重于码软件开发,后续发展成为一款基于java的持久层框架。Mybatis是一款优秀的持久层框架支持自定义SQL查询、存储过程和高级映射,消除了几乎所有的JDBC代码和参数的手动设置以及结果集的检索。MyBatis可以使用简单的XML或者注解进行映射和配置,通过将参数映射到配置的SQL最终解析为执行的SQL语句,查询后将SQl结果集映射成java对象返回。MyBatis提供的持久层框架包括SQL Maps(Mapper)和Data Access Objects(DAO),相对于Hibernate而言它提供的是一种把自动化的ORM实现。MyBatis中一级缓存会默认启用(本地缓存)且不受控制,一般说缓存时指的是MyBatis的二级缓存

2,sql语句

  1. MyBatis : 
  2. SQL语句封装在配置文件中,便于统一管理与维护;提供了动态SQL标签,支持编写动态SQL。以及提供映射标签,支持对象与数据库的ORM字段关系映射。
  3. 访问数据库的 sql 语句存放于 mapper (或Dao) 包下的 xml 配置文件中。
  4. Mybatis Plus: 
  5. 内置通用 Mapper、通用 Service,不需要再写 xml 了,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 。
  6. 内置 Sql 注入剥离器,有效预防Sql注入攻击

3,通用mapper

    MyBatis:

  • 仅仅适用于单表而言的增删改查
  • 所创建的接口只需继承mapper接口,以及在javaBean类中注释说明表名和主键
  1. @Table(name = "course") //对应数据库表名
  2. public class Course {
  3. //课程类
  4. @Id //标识主键
  5. private int cid ;
  6. private String cname ;
  7. private int tid ;
  8. //一个课程对应一个老师
  9. private Teacher teacher ;
  10. //一个课程对于一个成绩
  11. private Score score ;
  12. //无参方法
  13. //有参方法
  14. //get/set方法
  15. }

1、继承Mapper

2、JavaBean对其进行注释说明表名和主键

  • @Table(name = "表名") //对应数据库表名
  • @Id //标识主键

 Mybatis Plus: 

Mybatis + 通用Mapper + PageHelper升级成 MyBatis Plus

  1. @TableName("user") //表名
  2. public class User{
  3. @TableId(type = IdType.AUTO) //标识主键Id,设置为自动增长
  4. private Integer cid;
  5. private String cname;
  6. private String password;
  7. private String telephone;
  8. private String money;
  9. private Integer version;
  10. }

1、继承BaseMapper;BaseMapper 封装CRUD操作。

2、JavaBean对其进行注释说明表名和主键

  • @TableName("表名") //对应数据库表名
  • @TableId //标识主键

 Mybatis Plus:CRUD 接口,通用Service

  1. public class CustomerServiceImpl extends ServiceImpl<CustomerMapper,Customer> implements CustomerService {
  2. }

4,区别:

  1. MyBatis:
  2. 所有SQL语句全部自己写
  3. 手动解析实体关系映射转换为MyBatis内部对象注入容器
  4. 不支持Lambda形式调用
  5. Mybatis Plus:
  6. 强大的条件构造器,满足各类使用需求
  7. 内置的Mapper,通用的Service,少量配置即可实现单表大部分CRUD操作
  8. 支持Lambda形式调用
  9. 提供了基本的CRUD功能,连SQL语句都不需要编写
  10. 自动解析实体关系映射转换为MyBatis内部对象注入容器
  11. MyBatis的优势:
  12. 灵活性和可定制性高:MyBatis允许开发者手动编写原生SQL语句,可以满足复杂的查询需求,并且支持动态SQL语句的构建。
  13. SQL的可控性强:通过XML或注解的方式配置SQL语句,开发者可以更加直观地理解和管理SQL语句。
  14. 易于集成和使用:MyBatis与Java应用程序的集成相对简单,而且学习曲线相对较低。
  15. MyBatis的劣势:
  16. 编写大量重复的CRUD操作代码:在传统的MyBatis中,需要手动编写大量的增删改查(CRUD)操作的SQL语句,工作量较大且容易出错。
  17. 不够便捷:相对于一些其他ORM框架,MyBatis的操作相对繁琐,需要手动处理一些细节。
  18. MyBatis Plus的优势:
  19. 便捷的操作和增强功能:MyBatis Plus封装了很多常用的数据库操作方法,如增删改查,使得开发者能够更快速地完成基本的数据库操作,减少了重复劳动。
  20. 自动生成SQL语句:MyBatis Plus提供了代码生成器,可以根据实体类自动生成对应的SQL语句,简化了SQL语句的编写工作。
  21. 条件构造器和分页功能:MyBatis Plus提供了条件构造器和分页插件,使得查询条件的构建和分页操作更加便捷。
  22. MyBatis Plus的劣势:
  23. 灵活性相对较低:由于MyBatis Plus已经封装了很多常用的数据库操作,如果遇到一些特殊的复杂查询需求,可能需要手动编写原生SQL语句或使用高级特性来实现。
  24. 综上所述,MyBatis具有灵活性和可定制性高的优势,适合处理复杂的查询需求;而MyBatis Plus则提供了更多的便捷操作和增强功能,适合处理常规的增删改查操作。选择哪个框架取决于项目的需求和开发团队的偏好。

个人推荐:

        增删改适合于用mybatis-plus

        查询适合用mybatis

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/790606
推荐阅读
相关标签
  

闽ICP备14008679号