springboot打印SQL语句的配置
# 这个配置日志会将执行的sql打印出来,在开发或测试的时候可以用
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
一,mybatis常用注解
1 , 常用注解说明
@TableName(“st_user”)//声明表名
@TableId(value = "id", type = IdType.AUTO)//声明主键自增
@TableField(value = “real_name”) //声明表中字段,若字段和属性相同,可以不加此注解,默认字段和属性已经对应了.
@TableField(exist = false)//声明此属性表中不存在
@TableField(select = false)//此属性对应得字段查询时不会被查询出来,默认为true
1,表名与实体类名不一致
表名为 st_user 实体类名为User
解决方案:指定表名 @TableName(“st_user”)
2,字段名与实体类属性名不一致
字段名:real_name 实体类属性名:name
解决方案:指定对应关系 @TableField(“real_name”)
若字段与表中字段名保持一致可不加注解。
3,主键名不叫 id
表主键为user_id 实体类为userId
解决方案:指定主键 @TableId(value = “user_id”, type = IdType.AUTO)
private long userId;
4,排除非表中的字段
表中没有remark 实体类中有remark
解决方案:排除字段 @TableField(exist = false)
private String remark;
2 , 案列
@TableName("tran_equipment")
public class Equipment implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("user_name")
private String userName;
@TableField(select = false)//此属性对应得字段查询时不会被查询出来
private String password;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createtime;
@TableField(exist = false)
private String mqttProductId;
补充注解说明
@JsonFormat注解的作用是格式化时间类型数据传输时的格式,以自己想要的格式来展示日期,同时也设置时区,避免时间展示与想要的结果产生误差。后端向前端传 , 时间格式–>想要的时间格式
@DateTimeFormat注解作用则是将前端传来的字符串类型的日期转为后台需要的时间类型结果,不加此注解,请求会报错400,请求参数错误,对于此类错误要注意int类型数据传输也是一样。 前端向后端传 , 字符串时间–>时间格式
二,Mybatis-Plus的增删改查
BaseMapper:insert , update , delete , select , selectPage
IService:save , update , remove , get , list , page
1, 添加操作
insert() 新增记录
User user