在Mybatis使用的过程中,不只是有增删改查,在开发过程中我往往容易忽略这样的一个特性
PostDO类的实现如下
package com.goodluck.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* 用于表的增删改查
* @author kerwin
* @create 2023-04-06 21:45
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName("posts")
public class PostDO {
//设置主键自增,这样在执行mybatisPlus的insert方法的时候不会对这个字段进行插入
//即insert语句里没有这个字段
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
/**
* 来进行存储,因为mysql里的bigint和java里的long的数据范围一致
*/
private String openid;
private String grade;
private String major;
/**
* 商品描述
*/
private String description;
/**
* JSON数组的存储用字符串
*/
private String imgs;
@TableField("create_time")
private String createTime;
private char status;
}
PostDO postResult = PostDO.builder()
.openid(post.getOpenid())
.grade(post.getGrade())
.major(post.getMajor())
.description(post.getDescription())
.imgs(JSONObject.toJSONString(post.getImgs()))
.createTime(createTime)
.status(PostStatus.PUBLISHING.getCode())
.build();
比如这里有一个PostDO类的对象,此时这个PostDO类的对象 postResult,是没有id的,我们并没有给他指定id,因为我们需要把这个postResult这个对象插入的mysql的表里,mysql在这个postResult所在表的id是自增的,所以我们无需处理。
接下来我们进行把这个postResult插入到mysql表里
Integer postInsertSuccess = postDao.insert(postResult);
插入完成,此时如果你想获得postResult可以直接用
System.out.println(postResult.getId());
而无需写一条sql语句去获取。