赞
踩
首先推荐几个写的好的博客,这里我就不详细写了。
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的二级缓存
- MyBatis :
-
- SQL语句封装在配置文件中,便于统一管理与维护;提供了动态SQL标签,支持编写动态SQL。以及提供映射标签,支持对象与数据库的ORM字段关系映射。
- 访问数据库的 sql 语句存放于 mapper (或Dao) 包下的 xml 配置文件中。
- Mybatis Plus:
-
- 内置通用 Mapper、通用 Service,不需要再写 xml 了,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 。
- 内置 Sql 注入剥离器,有效预防Sql注入攻击
MyBatis:
- @Table(name = "course") //对应数据库表名
- public class Course {
- //课程类
- @Id //标识主键
- private int cid ;
- private String cname ;
- private int tid ;
- //一个课程对应一个老师
- private Teacher teacher ;
- //一个课程对于一个成绩
- private Score score ;
- //无参方法
- //有参方法
- //get/set方法
- }
1、继承Mapper
2、JavaBean对其进行注释说明表名和主键
@Table(name = "表名") //对应数据库表名
@Id //标识主键
Mybatis Plus:
将Mybatis + 通用Mapper + PageHelper
升级成 MyBatis Plus
- @TableName("user") //表名
- public class User{
- @TableId(type = IdType.AUTO) //标识主键Id,设置为自动增长
- private Integer cid;
- private String cname;
- private String password;
- private String telephone;
- private String money;
- private Integer version;
- }
1、继承BaseMapper;BaseMapper 封装CRUD操作。
2、JavaBean对其进行注释说明表名和主键
Mybatis Plus:CRUD 接口,通用Service
- public class CustomerServiceImpl extends ServiceImpl<CustomerMapper,Customer> implements CustomerService {
- }
4,区别:
- MyBatis:
-
- 所有SQL语句全部自己写
- 手动解析实体关系映射转换为MyBatis内部对象注入容器
- 不支持Lambda形式调用
- Mybatis Plus:
-
- 强大的条件构造器,满足各类使用需求
- 内置的Mapper,通用的Service,少量配置即可实现单表大部分CRUD操作
- 支持Lambda形式调用
- 提供了基本的CRUD功能,连SQL语句都不需要编写
- 自动解析实体关系映射转换为MyBatis内部对象注入容器
-
- MyBatis的优势:
- 灵活性和可定制性高:MyBatis允许开发者手动编写原生SQL语句,可以满足复杂的查询需求,并且支持动态SQL语句的构建。
- SQL的可控性强:通过XML或注解的方式配置SQL语句,开发者可以更加直观地理解和管理SQL语句。
- 易于集成和使用:MyBatis与Java应用程序的集成相对简单,而且学习曲线相对较低。
- MyBatis的劣势:
-
- 编写大量重复的CRUD操作代码:在传统的MyBatis中,需要手动编写大量的增删改查(CRUD)操作的SQL语句,工作量较大且容易出错。
- 不够便捷:相对于一些其他ORM框架,MyBatis的操作相对繁琐,需要手动处理一些细节。
-
- MyBatis Plus的优势:
- 便捷的操作和增强功能:MyBatis Plus封装了很多常用的数据库操作方法,如增删改查,使得开发者能够更快速地完成基本的数据库操作,减少了重复劳动。
- 自动生成SQL语句:MyBatis Plus提供了代码生成器,可以根据实体类自动生成对应的SQL语句,简化了SQL语句的编写工作。
- 条件构造器和分页功能:MyBatis Plus提供了条件构造器和分页插件,使得查询条件的构建和分页操作更加便捷。
-
- MyBatis Plus的劣势:
- 灵活性相对较低:由于MyBatis Plus已经封装了很多常用的数据库操作,如果遇到一些特殊的复杂查询需求,可能需要手动编写原生SQL语句或使用高级特性来实现。
- 综上所述,MyBatis具有灵活性和可定制性高的优势,适合处理复杂的查询需求;而MyBatis Plus则提供了更多的便捷操作和增强功能,适合处理常规的增删改查操作。选择哪个框架取决于项目的需求和开发团队的偏好。
个人推荐:
增删改适合于用mybatis-plus
查询适合用mybatis
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。