网站首页 > 开源技术 正文
有些情况,我们不能使用数据库自带的主键生成机制(例如:使用分表的策略,采用数据库自增主键将使得每张物理表的主键彼此独立,这不是我们想要的)。
由于这段时间redis使用挺多的,现在就看看如何生成主键。
我们初步设想ID的生成规则:
根据每一个库的每一张表组合成一个key, 然后依靠redis进行生成ID
1. 首先定义了一个生成id的接口类
2. 定义一个子类,实现我们的接口
3. 或使用Spring的redisTemplate实现,这就是接口的好处了,扩展另一种实现很方便。
至此,主键的生成机制就完成了,以后想扩展直接添加实现类就行。
但现在要替换MySQL自带的主键机制,我就需要手动的创建PrimarykeyGenerator的子类
调用generateId(String dbName, String tableName)返回我们需要插入的主键值,赋值给ID属性,在插入就完成了。
如果使用了Spring框架 ,像JedisPrimarykeyGenerator自定义类都交给spring管理。
具体怎么配就不在这里写。(相信大家都会的)
当然,我们还有很多需要完善的,例如我想像使用MySQL自带的主键机制时,根本就不关心ID的设置问题,多方便,多省心。
其实我们也是可以做到的,比如使用Mybatis做为映射框架,就可以自定义一个自动插入主键ID的插件,依赖intercept,自动处理手动设置ID的工作,这样就和使用MySQL自带的主键机制一样,不用我们关心ID的设置问题了。(这样也能练习一下ibatis拦截器)
- 上一篇: 揪出那个无主键的表(mysql无主键)
- 下一篇: 长方形主键/指纹识别 MX4 Pro真机曝光
猜你喜欢
- 2025-07-03 面试官竟然问我订单ID是怎么生成的?难道不是MySQL自增主键?
- 2025-07-03 MySQL中如何设置自动递增id主键重新计数从1开始?
- 2025-07-03 领导不让用UUID作为MySQL主键,那我用啥?
- 2025-07-03 长方形主键/指纹识别 MX4 Pro真机曝光
- 2025-07-03 揪出那个无主键的表(mysql无主键)
- 2025-07-03 主键ID的几种生成方式(主键id的几种生成方式)
- 2025-07-03 access利用DAO设置数据表的主键(access设置主键的方法)
- 2025-07-03 保障数据完整性:深入解析Oracle数据库的主键和外键约束
- 2025-07-03 如何计算InnoDB主键索引B+树的高度?
- 2025-07-03 雪花算法,什么情况下发生 ID 冲突?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)