Mybatis Plus基础02 新增insert操作

学习目标:

使用mybatis plus 新增insert插入数据


学习内容:

插入一条新数据


学习产出:

1、数据准备

操作数据的话,需要连接数据库,在编辑器中右侧可以进行连接
在这里插入图片描述
输入账号密码和URL就可以了
在这里插入图片描述
连接成功显示
在这里插入图片描述
在springboot配置文件中,连接数据库
在这里插入图片描述
创建实体类

package com.example.demo.domain;
//lombok 简化实体类的包
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data // 生成get/set 方法
@AllArgsConstructor // 生成有参构造器
@NoArgsConstructor // 生成无参构造器
public class User {
    private Integer id;
    private String user;
    private String pwd;
    private String token;
    private String role;
    private String createtime;
}

创建接口,继承BaseMapper

package com.example.demo.Dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.domain.User;
import org.apache.ibatis.annotations.Mapper;
//接口继承BaseMapper<实体类> 这里封装了增删改查的方法
@Mapper     
public interface UserDao extends BaseMapper<User> {
}

写个测试类,测试新增方法

package com.example.demo;

import com.example.demo.Dao.UserDao;
import com.example.demo.domain.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class Demo4ApplicationTests {

    @Autowired
    private UserDao userDao;

    @Test
    void insertSave(){
        User user = new User();
        user.setUser("testSave");
        user.setPwd("111");
        user.setToken("12312");
        user.setRole("asdf");
        user.setCreatetime("2022-1-1");
        userDao.insert(user);
    }
}

执行的话,会报错

org.mybatis.spring.MyBatisSystemException:
nested exception isorg.apache.ibatis.reflection.ReflectionException: 
Could not set property 'id' of 'class com.example.demo.domain.User' with value 
'1521666337871495170' Cause: java.lang.IllegalArgumentException: argument type mismatch

是因为这里没有指定ID的策略,这里默认的一种新增id的算法。

我们需要设置ID为自增策略。

方式1:在实体类中的id上写入@TableId(type = IdType.AUTO)
有个问题:就是每新增一个类的id都需要写入会很麻烦,所以不推荐使用这种方法

public class User {
    @TableId(type = IdType.AUTO) // 设置id为自增的
    private Integer id;
    private String user;
    private String pwd;
    private String token;
    private String role;
    private String createtime;
}

有个问题:就是每新增一个类的id都需要写入会很麻烦,所以不推荐使用这种方法
可以在配置文件中,进行配置,所有的id都为自增策略+1的设置

mybatis-plus:
  global-config:
    db-config:
      id-type: auto // 设置自增id,这样就不用在每个实体类中写@TableId了

在这里插入图片描述
这样就可以完成新增的操作了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值