博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javaweb使用自定义id,快速编码与生成ID
阅读量:6327 次
发布时间:2019-06-22

本文共 1290 字,大约阅读时间需要 4 分钟。

hot3.png

项目需求,要求id改变1++的自增策略,而是使用自定义的varchar类型,长度定位24;

规则:

订单id : ord + 随机数+ 时间戳 

渠道id : ch +随机数 +时间戳

等,可自行设置规则

工具类:

import java.util.Random;public class IdUtil {	private static final Random _Rand = new Random();	private static final char[] _number = ("0123456789").toCharArray();		/**	 * 获取指定位数数字 	 * @param length	 * @return	 */	public static final String RandNum(int length){		String rand = "";		for(int i=0,s=_number.length;i

 

hibernatePo设置

项目中集成hibernate映射, 因此,我们必须把其相对应的Po的主键生成策略注释掉;

@Id	//@GeneratedValue 主键生成策略	@Column(name = "id", unique = true, nullable = false)	public long getId() {		return id;	}

 

hibernateSave方法重载

在调用hibernate save对象前,调用工具类手动生成UUID,赋值到对象中,save即可;

这里是不同类型表,生成不同ID,更近instanceof 判断类型,而调用相对于的Id方法

public Serializable saveReturnIdByUUID(Object entity) {		/** 		 * XX表		 */		if(entity instanceof UserNamePo){ 			UserNamePo tempPo = (UserNamePo) entity;			tempPo.setUserId(IdUtil.getUid());			logger.info("手动生成id策略: 生成id值为:"+ tempPo.getUserId() );			return saveReturnId(tempPo);		}		/**		 * XX表		 */		if(entity instanceof AdvertInfoPo){ 			AdvertInfoPo tempPo = (AdvertInfoPo) entity;			tempPo.setAdvId(IdUtil.getAdvId());			logger.info("手动生成id策略: 生成id值为:"+ tempPo.getAdvId() );			return saveReturnId(tempPo);		} 				return null;}

 

转载于:https://my.oschina.net/java1314/blog/839525

你可能感兴趣的文章
(译)如何使用cocos2d和box2d来制作一个Breakout游戏:第一部分
查看>>
敬告各位 ALinq 用户,切勿上当受骗
查看>>
计算机图形学(一) 图形系统综述
查看>>
持续集成(CI)- 几种测试的区别(摘录)
查看>>
多用户虚拟Web3D环境Deep MatrixIP9 1.04发布
查看>>
求高手,求解释
查看>>
[MSSQL]NTILE另类分页有么有?!
查看>>
winform datagridview 通过弹出小窗口来隐藏列 和冻结窗口
查看>>
C机顶盒开发实战常用初始化类型:数组、结构、指针
查看>>
Jquery闪烁提示特效
查看>>
最佳6款用于移动网站开发的 jQuery 图片滑块插件
查看>>
C++ String
查看>>
获取系统托盘图标的坐标及文本
查看>>
log4j Test
查看>>
HDU 1255 覆盖的面积(矩形面积交)
查看>>
Combinations
查看>>
SQL数据库无法附加,提示 MDF" 已压缩,但未驻留在只读数据库或文件组中。必须将此文件解压缩。...
查看>>
第二十一章流 3用cin输入
查看>>
在workflow中,无法为实例 ID“...”传递接口类型“...”上的事件“...” 问题的解决方法。...
查看>>
获取SQL数据库中的数据库名、所有表名、所有字段名、列描述
查看>>