配置日志

在yml文件中配置:

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

CRUD扩展:

插入测试:

@Test
    public void testInsert(){
        User user =new User();
        user.setName("Java");
        user.setAge(11);
        user.setEmail("2132333@qq.com");
        int insert = userMapper.insert(user);
        System.out.println(insert);
        System.out.println(user);


    }

发现id是一串很长的数字,数据库默认的id是全局唯一的

主键生成策略

默认: @TableId(type = IdType.ID_WORKER) 全局唯一id

雪花算法:
在这里插入图片描述

主键自增:
1.在实体类字段上增加@TableId(type = IdType.AUTO)
2.数据库中的字段一定要是自增
3.测试插入即可

public enum IdType {
    AUTO(0), //自动增长id
    NONE(1),//不设置主键
    INPUT(2),//手动输入id
    ID_WORKER(3),//默认全局唯一的id
    UUID(4),//全局的id  uuid
    ID_WORKER_STR(5); //ID_WORKER  字符串表示法
}

更新操作:

 @Test
    public void testUpdate(){
        User user = new User();

        //通过条件自动拼接SQL
        user.setId(2L);
        user.setAge(16);
        user.setName("dai");

        //注意  里面传递的是一个对象而不是id
        int i = userMapper.updateById(user);


    }

所有的SQL都是自动帮你配置的

自动填充:
创建时间、修改时间

方式一:数据库级别
1.在表中新增字段 create_time,update_time
在这里插入图片描述

2.同步测试类:

3.测试即可

方式二:代码级别
1.删除数据库的默认值,更新操作
在这里插入图片描述

2.实体类字段上加上注解

 //字段添加填充内容
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

3.编写处理器处理结果

package com.dai.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;


@Slf4j
@Component  //不要忘记添加到IOC容器中
public class MyMetaObjectHandler implements MetaObjectHandler {
    //插入时填充策略
    @Override
    public void insertFill(MetaObject metaObject) {

        log.info("start insertFill..........");
        this.setFieldValByName("createTime",new Date(),metaObject);
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }

    //更新时填充策略
    @Override
    public void updateFill(MetaObject metaObject) {

        log.info("start updateFill..........");
        this.setFieldValByName("updateTime",new Date(),metaObject);

    }
}

4.测试观察结果即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值