)
目录1.MyBatisPlus是啥2.MyBatis Plus的配置1.添加依赖2.配置数据库相关信息3.配置打印MyBatis日志可选3.MyBatis Plus的使用1.mapper2.表名的自动驼峰转换具体转换规则如下3.TableName1.TableName(str)注解的作用2.注意3.举例不加TableNmae注解加TableName注解4.为什么SQL里这个id是自增的调用insert插入的结果不是自增的 而是一个无规律的数为什么会出现上述现象修改方案加TableIdtype注解注意要先修改【自增计数器】5.字段与属性之间的映射关系TableField改为4.结语1.MyBatisPlus是啥MyBatis Plus是MyBatis的进化版在MyBatis的基础上简化开发提高了效率。2.MyBatis Plus的配置1.添加依赖SpringBoot 3x的使用这个依赖dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-spring-boot3-starter/artifactId version3.5.15/version /dependencySpringBoot 2x的使用这个依赖dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-spring-boot-starter/artifactId version3.5.7/version /dependency2.配置数据库相关信息3.配置打印MyBatis日志可选mybatis-plus: configuration: # 配置打印 MyBatis日志 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl这个配置打印的就是这部分内容3.MyBatis Plus的使用1.mapper继承BaseMapperBaseMapper提供了操作数据库的各种方法2.表名的自动驼峰转换如上图所示idea的类叫【UserInfo】数据库的表名叫【user_info】那么在使用mybatis plus操作数据库时直接使用父类的方法那么mybatis是怎么知道发给数据库的预编译SQL 中的表名是【user_info】呢因为mybatis plus自带 类名驼峰转下划线的规则MP在启动时读取到BaseMapperT,这里【T】是【UserInfo】拿到实体类根据规则转换类名后续使用时用转换后的类名。具体转换规则如下3.TableName1.TableName(str)注解的作用告诉MyBatis Plus这个实体类对应的数据库表名叫做str,不再用自动驼峰转下划线的规则推算表名。2.注意如果不加TableName这个注解MP就自动转换实体类名如果加了TableName注解就覆盖掉自动转换逻辑使用str去数据库找对应表。3.举例把表名从【user_info】改为【userinfo】:不加TableNmae注解可以看到MP把实体类名自动转化为【user_info】,结果报错。加TableName注解4.为什么SQL里这个id是自增的调用insert插入的结果不是自增的 而是一个无规律的数为什么会出现上述现象数据库里虽然把id设为AUTO_INCREMENT,但是MP默认的主键策略是【雪花算法】雪花算法会在Java层面里提前生成一个随机数赋值给实体对象的id里再发送给数据库数据库接收到id已经有值了就不会触发自增。总结就是MP先把id填好了数据库的自增就跳过了。修改方案加TableIdtype注解注意要先修改【自增计数器】5.字段与属性之间的映射关系【实体属性名】与【数据库字段名】MP也会自动转换如果字段名与MP自动转换的不一致实体类属性就要加TableField注解TableField结果改为4.结语