MyBatis-plus中的两种快捷操作数据库方式:1、mapper调用 2、ActiveRecord方式(简称AR) 二者的使用和区别介绍

        在使用MyBatis操作数据库时,需要频繁的写mapper层dao接口以及对应的配置文件和SQL语句,当功能方法繁杂,业务逻辑不复杂的时候,我们可以使用MyBatis的升级版MyBatis-Plus来代替我们写这些繁琐的配置文件和简单的SQL。

MyBatis-Plus中提供了两种操作数据库的方式:

1、mapper调用

(1)书写或使用MP生成数据库表对应的实体类。

(注意 在id属性上,要使用@TableId注解,type设置主键的生成方式并value对应主键的字段名)

 

(2)dao接口extends继承BaseMapper<T>

 

(3)声明Mapper扫描组件

这里使用springboot中得得注解@MapperScan("dao包")的方式。(如果是使用的spring或mybatis的在对应的配置文件中进行mapper声明,这里不再赘述)

(4)使用处自动注入dao接口,直接调用dao中的sql方法即可完成对数据库的各种基本操作,非常的便捷。

2、AR调用

(1)编写实体类以及属性字段的对应、id字段的生成配置等与以上一致。

注意:需要在实体类上添加extends Modle<T>   ————核心

(2)dao接口中继承BaseMapper<T>

(说明一下,此处也继承BaseMapper并非使用其中的mapper调用,不使用mapper,也需要定义这个类,MP通过mapper获取到表的结构;不定义   时,MP会报错无法获取表的结构信息。)

(3)使用实体类调用方法

如下图,使用实体类对象直接调用操作数据库中的方法,这样可以达到无需经过service和mapper层就可以直接操作数据库,在应对一些不复杂的业务逻辑时,非常的方便快捷!

 

  • mpm基本的curd ARcurd 的区别:

(为了方便,使用以下命名方式:mbm==MyBatis-Plus的Mapper方式,AR==ActiveRecord方式

  • 两者都是用于操作数据库,并且都不用写SQL语句,只需写实体类、Dao接口即可
  • mbm和AR中的Dao接口都需要继承BaseMapper<实体类名>,(BaseMapperMyBatis-Plus框架中提供的,内含各种操作数据库的方法,是MyBatis-Plus的核心
  • 二者在使用的时候,都需要在springboot的主启动类上加@MapperScan(dao的全限定包名)
  • AR中实体类需要继承Model<类名>,而mbm不需要

  • 使用mbm操作数据库时需要先注入dao接口,使用mapper层调用内置的数据库操作的方法;

而使用AR时,则是使用对象本身调用操作数据库的方法,使用的是继承来的Model<>内的方法:

  • 对数据库操作的方法的调用方式不同:mbp使用mapper调用,而AR使用实体类对象调用
  • 调用的方法的实现类不同:mbp为BaseMapper<T>实现,而AR为Modle<T>类实现
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值