MP的一点学习

文章介绍了如何在Java中使用ActiveRecord模式进行数据库操作,包括实体类的定义、根据主键查询、新增数据、更新和删除操作。同时,文章还详细讲解了如何实现自动填充字段,如密码,默认值设置,以及逻辑删除的概念和在数据库表中的实现方式,包括配置逻辑删除字段和相关YML配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MP

+++

自己挑一些常用简单的功能,记录一下

ActiveRecord 活动记录

实体对象继承Model即可

@Data
public class User extends Model<User> {
    private Long id;
    private String userName;
    private String name;
    private Integer age;
    private String email;
    private String password;
}

根据主键查询

@Test
public void testAR() {
    User user = new User();
    user.setId(1660582533819129857L);
    User user2 = user.selectById();
    log.info(String.valueOf(user2));
}

新增数据

@Test
void contextLoads() {
    User user = new User();
    user.setName("刘备").setAge(10).setPassword("123").setUserName("liubei").setEmail("liubei@163.com");
    log.info("插入数据:{}",user.insert());
}

更新操作

@Test
void testAR1() {
    new User().setId(1660582533819129857L).setAge(35).updateById();
}

删除操作

	@Test
    void test1() {
        new User().setId(1660582533819129857L).deleteById();
    }

条件查询

@Test
void test1() {
    User user = new User();
    LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.eq(User::getAge, 35);
    System.out.println(user.selectList(queryWrapper));
}

+++

自动填充

有些时候我们可能会有这样的需求,插入或者更新数据时,希望有些字段可以自动填充数据,比如密码、version 等。在MP中提供了这样的功能,可以实现自动填充。

/*INSERT UPDATE INSERT_UPDATE*/
@TableField(fill = FieldFill.INSERT) //插入数据时进行填充
private String password;

编写配置 元对象处理程序

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) { //密码默认值 123456
        Object password = getFieldValByName("password", metaObject);
        if (password == null) setFieldValByName("password", "123456", metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        //不做处理
    }
}

可以看到默认密码为123456

V4s83q.png

+++

逻辑删除

开发系统时,有时候在实现功能时,删除操作需要实现逻辑删除,所谓逻辑删除就是将数据标记为删除,而并非真正 的物理删除(非DELETE操作),查询时需要携带状态条件,确保被标记的数据不被查询到。这样做的目的就是避免 数据被真正的删除。

ALTER TABLE `user`
ADD COLUMN `deleted` int(1) NULL DEFAULT 0 COMMENT '1代表删除,0代表未删除';

也修改User实体,增加deleted属性并且添加@TableLogic注解

@TableLogic
Integer deleted;

yml配置默认值

  global-config:
    db-config:
      id-type: ASSIGN_ID
      logic-delete-value: 1
      logic-not-delete-value: 0
  global-config:
    db-config:
      id-type: ASSIGN_ID
      logic-delete-value: 1
      logic-not-delete-value: 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值