|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
说句实话,Java跨平台根本就不是外行人想想的那种,一次编译,处处运行。1.本人写代码发生随机的数字和字母组合,每发生1个往数据库查询该随机码是不是已存在,假如已存在,则从头发生,直到不反复为止。
长处:没发明有啥长处。
弱点:发生速率慢,还要查询数据库,当数据量年夜的时分,大概反复的机率会对照高,要查询屡次数据库.
2.guid,该办法应当是用的对照多的。
长处:利用复杂便利,不必本人编写分外的代码
弱点:占用数据库空间绝对较年夜,出格是依据guid查询速率对照慢(究竟是字符串)。
3.主键+随机码的体例,我们发生的随机码保留到数据库一定会有个主键,用该主键+随机字符来组合。发生步骤:
1)先从id天生器中猎取id,好比是155.
2)添补成流动位数(好比8位)的字符串(不敷位数的右边填0,凌驾位数间接利用该数字),失掉:00000155
3)在每一个数字前面随机拔出1个字母或别的非数字标记,失掉:0A0F0R0Y0H1K5L5M
如许就能够失掉1个随机的独一的约请码了。
长处:利用也对照复杂,不必查询数据库。最年夜的长处是查询的时分,能够依据约请码间接失掉主键id,
然后依据id往数据库查询(速率很快),再对照查询出来的约请码和用户提交的约请码是不是分歧。
弱点:必要利用id发生器,假如主键是数据库自增加的就不太好用(必要先拔出数据库猎取id,再更新约请码)。
4.偶然候产物司理说,我请求约请码都是数字的。why?nowhy?我喜好。*(&^(^%&^$&^$把办法3变通下就能够完成独一的纯数字随机码了。
1)猎取id:155
2)转换成8进制:233
3)转为字符串,并在前面加9字符:2339
4)在前面随机发生多少个随机数字字符:2003967524987
转为8进制后就不会呈现9这个字符,然后在前面加个9,如许就可以断定独一性。最初在前面发生一些随机数字就能够。
优弱点同办法3
今朝办法3,4办法在我们产物中都利用了,感到还能够。
PS:以上是团体肤见,有更好办法的同砚请分享下。^_^
[作者]:BearRui(AK-47)
[博客]:http://www.ckuyun.com/BearsTaR/那做企业软件是不是最好用J2EE? |
|