1:@Data注解无效
解决方案:IDEA安装Lombok插件,然后重启IDEA
2:实体类驼峰命名,数据库字段无法匹配
解决方案:mybatis-plus.configuration.map-underscore-to-camel-case=false
#配置数据库
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# mysql8的驱动要加上serverTimeZone=GMT/2B8
spring.datasource.url=jdbc:mysql://localhost:3306/hanyxx?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
#解决实体类驼峰命名,数据库转为_ 的问题(自动驼峰转换关闭)
mybatis-plus.configuration.map-underscore-to-camel-case=false
#配置日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
3:insert时报错:argument type mismatch
解决方案:在实体类上加上:@TableId(type = IdType.AUTO)
:(改变主键策略,指定为自增长)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
@TableId(type = IdType.AUTO)
private Integer id;
private String userName;
private Date birthday;
private String sex;
private String address;
}
如果不加@TableId(type = IdType.AUTO)
那么Mybatis_plus会采用默认的主键生成策略:雪花算法
雪花算法:
使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0,每次生成唯一的值
@TableId详细解释:
4:代码自动生成
package com.banana;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config