java怎么自动生成订单号 订单号要求前面 “字母+年月日+4位流水号” 每天生成的订单号最后4位流水号都得从1开始,要怎么实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个难吗? new Date();转换成你要的格式,然后再拼接上你的流水号!ok! 这个不难,难的是不能重复。字母+年月日+4位流水号字母的话,建议直接给成商品类别(商品类别应该会有英文缩写,写这个就好了)。年月日不知道你要换算成毫秒的还是类似于20120306这样?System.currentTimeMillis()获取毫秒数,要20120306这样,new Date();之后用simpleDateFormat格式话即可。四位流水号,不能重复,也不容易。建议从数据库查询出最后那笔订单号,截取后四位,判断,如果不是同一天,则直接给0001即可,否则累加。这三个组成的应该不会重复。 你确定9999个流水号够用吗?这个比较重要,其他的都是小问题。流水号可以缓存起来,可以以Map<日期,当前流水号值>这种方式,如果通过今天的日期获取不到,那么则把昨天的remove掉,并且重新往里面写入今天的流水号。但是要注意获取流水号方法的同步(如果是多线程的话)。 写一个函数,java里调用函数,唯一性的话直接用sequence保证,假如跨数据库就在价格表示 补充:错别字较多哈写个编码生成规则的CRUD 。再写个数据库函数,读取编码生成规则,依据编码生成规则生成需要的编码。主要就是单独弄一个ORACLE里面是sequence去控制流水号,再加上日期以及其他标识符去保证唯一性编码规则的字段样例如下:*业务前缀 *单据编码 *序列名称 *日期格式化模式 (格式化范例:YYYY表示年,YYYYMM标识年月,YYYYMMDD标识年月日) *标识位置 NO-无前后缀PR-前缀SU-后缀 *重置日期类型 YYYY-年YYYYMM-月YYYYMMDD-日 *流水号位数 1 自动流水号 生成:写一个 utils专门生成订单。 a 生成这个号的时候是 sync 的 b 流水号第二天清零 : 可以考虑用 timerTask ,如果你要求的很严格,就用Quartz.注意同步。 oracle同义词的表能用hibernate映射吗 SSH2中通过值栈获取页面值的问题 分页查询问题,急 SSH框架数据库移植问题 [求助]ant telnet read性能问题 按照NetBeans官网的方式部署的axis2可是为什么没有axis2 service from java这一个选项啊?急 intra-mart???? 请给一个SNMP的例子,用开源包的!谢谢 我的怎么不行?有j2ee这个应用程序? 新看J2EE的几个问题 浏览器后退,页面过期??????????????????????? struts2 页面如何输出
流水号可以缓存起来,可以以Map<日期,当前流水号值>这种方式,如果通过今天的日期获取不到,那么则把昨天的remove掉,并且重新往里面写入今天的流水号。但是要注意获取流水号方法的同步(如果是多线程的话)。
再写个数据库函数,读取编码生成规则,依据编码生成规则生成需要的编码。
主要就是单独弄一个ORACLE里面是sequence去控制流水号,再加上日期以及其他标识符去保证唯一性
编码规则的字段样例如下:*业务前缀 *单据编码 *序列名称
*日期格式化模式 (格式化范例:YYYY表示年,YYYYMM标识年月,YYYYMMDD标识年月日)
*标识位置 NO-无前后缀PR-前缀SU-后缀 *重置日期类型 YYYY-年YYYYMM-月YYYYMMDD-日 *流水号位数
a 生成这个号的时候是 sync 的
b 流水号第二天清零 : 可以考虑用 timerTask ,如果你要求的很严格,就用Quartz.注意同步。