【Mybatis-plus】:ActiveRecord

本文介绍了ActiveRecord的概念及其在Mybatis-plus中的应用。ActiveRecord是一种ORM模式,它将数据库表映射为实体类,实现了 CURD 操作。在Mybatis-plus中,只需让实体类继承Model类即可使用ActiveRecord功能。文章详细展示了如何进行添加、修改、删除和查询数据的操作,简化了数据库交互的代码编写。
摘要由CSDN通过智能技术生成

1、什么是 ActiveRecord

ActiveRecord(简称AR)也属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。

ActiveRecord的主要思想是:

  • 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的属性;
  • ActiveRecord 同时负责把自己持久化,在 ActiveRecord 中封装了对数据库的访问,即CURD;;
  • ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑;

2、在 Mybatis-plus 中使用 ActiveRecord

在 Mybatis-plus 中使用 ActiveRecord 很简单,实体类继承 Model<T>类就行,如下所示:

@TableName(value = "`order`")
public class Order extends Model<Order> {
    @TableId(type =IdType.AUTO)
    private int id;
    @TableField(fill = FieldFill.INSERT_UPDATE,value = "date")
    private String date;
    private double total;
    private int uid;
    @TableField(exist = false, select = false)
    private User user;	
	//省略get/set方法
}

Model类中的方法:

在这里插入图片描述

2.1、添加语句

  • insert():根据对象实例的值进行添加操作
    User user = new User(); 
    //通过 set 方法给对象赋值
    user.setXXX("XXX"); 
    //insert方法就是 model 提供的
    boolean insert = user.insert();
    

2.2、修改语句

  • updateById():根据对象实例的值进行修改操作,以主键值为修改条件
    User user = new User(); 
    //通过 set 方法给对象赋值
    user.setXXX("XXX"); 
    //updateById 方法就是 model 提供的
    boolean insert = user.updateById();
    
  • update(Wrapper<T> updateWrapper):根据对象实例的值进行修改操作,并以形参的值为为修改条件
    User user = new User();
    //通过 set 方法给对象赋值
    user.setXXX("XXX"); 
    UpdateWrapper<User> wrapper = new UpdateWrapper<>();
    //通过构造器添加修改字段,这个会覆盖对象中的相同属性
    wrapper.set("XXX", XXX).eq("XXX",XXX);
    boolean update = user.update(wrapper);
    

2.3、删除语句

  • deleteById():根据主键id删除数据
  • delete(Wrapper<T> queryWrapper):根据指定条件删除数据

2.4、查询语句

  • selectAll():查询所有数据
  • selectById():根据主键id查询数据
  • selectList(Wrapper<T> queryWrapper):根据自定义条件查询数据
  • selectOne(Wrapper<T> queryWrapper):根据自定义条件查询一条数据
  • selectPage(E page, Wrapper<T> queryWrapper):根据自定义条件分页查询
  • selectCount(Wrapper<T> queryWrapper):根据自定义条件查询数据条数

删除语句 和 查询语句的方法和 BaseMapper 类的方法差别不大,这里就省略具体用法。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis-Plus是一个MyBatis的增强工具,它在MyBatis的基础上进行增强而不改变原有框架,旨在简化开发并提高效率。它具有以下特点和功能: 1. 无侵入:引入MyBatis-Plus不会对现有工程产生影响,只做增强而不改变原有代码。 2. 强大的CRUD操作:MyBatis-Plus内置了通用Mapper和通用Service,通过少量配置即可实现单表大部分CRUD操作,同时提供强大的条件构造器,满足各类查询需求。 3. 支持Lambda形式调用:通过Lambda表达式,方便地编写各类查询条件,避免字段写错的问题。 4. 支持主键自动生成:MyBatis-Plus支持多种主键策略,包括分布式唯一ID生成器,可以自由配置,解决了主键生成的问题。 5. 支持ActiveRecord模式:支持通过继承Model类进行强大的CRUD操作。 6. 支持自定义全局通用操作:MyBatis-Plus支持全局通用方法注入,可以在任何地方使用,提高代码复用性。 7. 内置代码生成器:可以通过代码或者Maven插件快速生成Mapper、Model、Service、Controller层代码,支持模板引擎和自定义配置。 8. 内置分页插件:基于MyBatis的物理分页,配置好插件后,分页操作与普通List查询相同。 9. 支持多种数据库MyBatis-Plus支持多种关系型数据库,如MySQL、Oracle、SQLServer等。 10. 内置性能分析插件:可以输出SQL语句及其执行时间,方便开发测试时进行性能分析。 11. 内置全局拦截插件:提供全表delete、update操作的智能分析阻断,也可以自定义拦截规则,预防误操作。 总的来说,MyBatis-Plus在提供便捷的CRUD操作的同时,还提供了许多其他功能和特性,以提高开发效率和性能。 #### 引用[.reference_title] - *1* *3* [MyBatis-Flex、MyBatis-Plus与Fluent-Mybatis三者的比较](https://blog.csdn.net/boonya/article/details/130059483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Mybatis-Plus 实现增删改查 -- Mybatis-Plus 快速入门保姆级教程(一)](https://blog.csdn.net/HHX_01/article/details/130183726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值