简单来说看一下例子:

上面是数据库表的样子,下面是写的实体类

    //默认全局主键唯一
    @TableId(type = IdType.ASSIGN_ID)
    private Long user_id;

    @NotNull(message = "用户名不能为空")
    private String user_name;

就是因为表元素命名问题所以产生了NULL异常,mybatis是默认有驼峰命名法的,所以不用开启,只要字段一致就可以传递,但是mybatis-plus默认是关闭的所以就有问题

下面是解决方案:

第一种:

在properties.yml里面开启驼峰命名法

#开启驼峰命名转换
mybatis:
  configuration:
    map-underscore-to-camel-case: true

第二种:

在主题类上面加上映射注解

    //默认全局主键唯一
    @TableField(value = "user_id") //与数据库字段保持一致
    @TableId(type = IdType.ASSIGN_ID)
    private Long user_id;

    @TableField(value = "user_name")
    @NotNull(message = "用户名不能为空")
    private String user_name;

第三种:

自己写一个驼峰命名

    //默认全局主键唯一 
    @TableId(type = IdType.ASSIGN_ID)
    private Long userId;

    @NotNull(message = "用户名不能为空")
    private String userName;

最后完美解决:

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐