1.MybatisPlus(二)MybatisPlus入门案例2.MybatisPlus(一)MybatisPlus简介3.MybatisPlus(三)MybatisPlus CRUD操作4.MybatisPlus(四)MybatisPlus分页5.MybatisPlus(五)MybatisPlus条件查询6.MybatisPlus(六)MybatisPlus-空值处理7.MybatisPlus(七)MybatisPlus-DQL编程控制(上)8.MybatisPlus(八)MybatisPlus-DQL编程控制(下)
9.MybatisPlus(九)MybatisPlus-DML编程控制
10.MybatisPlus(十)MybatisPlus-逻辑删除和多记录操作11.MybatisPlus(十一)MybatisPlus-乐观锁12.MybatisPlus(十二)Mybatis-Plus 代码生成器增删改 Insert Delete Update 操作中的一些问题。
一、主键生成策略
增加的时候主键生成的问题,不同的环境、不同的场景对应的主键生成策略可能是不一样的,比如日志表、购物订单表、外卖单。
主键生成策略设置方法:
示例代码:
package com.it.domain; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.Version; import lombok.Data; @Data //设置表名映射关系 //@TableName("tbl_user") public class User { //设置主键生成策略 @TableId(type = IdType.AUTO) private Long id; private String name; @TableField(value = "pwd",select = false) private String password; private Integer age; private String tel; @TableField(exist = false) private Integer online; private Integer deleted; @Version private Integer version; }
主键生成策略介绍:
查看IdType源码:
注意:AUTO 主键生成策略使用数据库ID自增策略,需要设置数据库自增。
INPUT主键生成策略使用,要取消数据库自增策略手动输入。
雪花算法生成id介绍:
雪花算法由占位符,时间戳,机器码,序列号组成,如下图:
二、全局配置
主键生成策略全局配置:
在application.yml中添加如下配置:
# mp日志
mybatis-plus:
global-config:
db-config:
id-type: assign_id
主键生成策略配置:
表名前缀全局配置:
在application.yml中添加如下配置:
# mp配置
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
banner: false
db-config:
id-type: assign_id
table-prefix: tbl_
表名前缀配置:
三、测试
单元测试代码:
@SpringBootTest class MybatisplusDmlApplicationTests { @Autowired private UserDao userDao; @Test void testSave(){ User user = new User(); // user.setId(667L); user.setName("你是程序员"); user.setPassword("it123456"); user.setAge(12); user.setTel("4006184000"); userDao.insert(user); } }
运行单元测试,添加成功。
合集:
Mybatis-Plus
分类:
Java框架
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)