简单来说看一下例子:
上面是数据库表的样子,下面是写的实体类
//默认全局主键唯一
@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;
最后完美解决: