阅读更多

2顶
0踩

编程语言

 E3.ID e3.commons下的一个专门用户生成ID的组件,E3.ID 的特点:

q        支持分布式ID的生成,当你的应用需要部署在多台服务器时,e3.id 允许给ID设置前缀,能有效避免ID冲突的问题.

q        E3.ID 是用java开发的,所以跟具体数据库无关,独立数据库,所以具有更好的移值性.

q        E3.ID 是有序的,生成的ID排列顺序以调用先后时间一致.

q        E3.ID 允许控制序号的最小值,最大值,以及是否循环等属性,所以如果您正在使用数据库的sequence时,可以考虑使用E3.ID, 因为E3.ID 具有更好的移值性.

来自: www.javae3.com
2
0
评论 共 2 条 请登录后发表评论
2 楼 Arden 2008-06-20 10:37
在哪下载啊?
1 楼 huangyh 2008-05-04 09:40
生成E3ID
E3ID 是由8位日期号 + 12位序号组合成的,是字符串类型,当序号不足时,自动会补零.

如:20081010000000000001

20081010000000000002

每天生成的ID日期号都不一样,所以每天最多允许生成的ID是9999亿(12位),接近1万亿,应该说足够用了.



生成e3id:

System.out.println(net.jcreate.e3.commons.id.util.IDHelper.e3id());







生成UUID
E3提供的UUID代码是来自hibernate的,uuid长度固定为32位.因为生成uuid时,不需要做同步处理,速度比较快,所以一次性当需要生成大批量的ID时,可以考虑用UUID.



生成uuid:

System.out.println(net.jcreate.e3.commons.id.util.IDHelper.uuid());





生成序号
如果您要生成1,2,3…之类的序号时,使用DefaultIDGenerator

    net.jcreate.e3.commons.id.generator.DefaultIDGenerator generator =

       new net.jcreate.e3.commons.id.generator.DefaultIDGenerator();

System.out.println(generator.create());  







限制序号值
有的时候您可能需要限制序号的最小值、最大值时,您可以这样做:

    net.jcreate.e3.commons.id.generator.DefaultIDGenerator generator =

       new net.jcreate.e3.commons.id.generator.DefaultIDGenerator();

    net.jcreate.e3.commons.id.sequence.DefaultSequenceGenerator sequenceGenerator =

       new net.jcreate.e3.commons.id.sequence.DefaultSequenceGenerator();

    sequenceGenerator.setMinValue(1000);

    sequenceGenerator.setMaxValue(9999);

    generator.setSequenceGenerator(sequenceGenerator);

    System.out.println(generator.create());  







格式化序号
如果您希望生成的ID长度固定是多少位时,可以使用使用SequenceFormater来处理.

    net.jcreate.e3.commons.id.generator.DefaultIDGenerator generator =

       new net.jcreate.e3.commons.id.generator.DefaultIDGenerator();

    net.jcreate.e3.commons.id.formater.DefaultSequenceFormater sequenceFormater =

new net.jcreate.e3.commons.id.formater.DefaultSequenceFormater();

    sequenceFormater.setPattern("000000");

    generator.setSequenceFormater(sequenceFormater);

    System.out.println(generator.create());





sequenceFormater.setPattern("000000"); 用于确定输出序号的模式.

给序号设置前缀
当您希望给所有的ID都追加一个前缀时,可以使用SequencePrefix来处理.下面的用法是给ID加上”E3”前缀.

    net.jcreate.e3.commons.id.generator.DefaultIDGenerator generator =

       new net.jcreate.e3.commons.id.generator.DefaultIDGenerator();

    net.jcreate.e3.commons.id.prefix.DefaultPrefixGenerator prefixGenerator =

       new net.jcreate.e3.commons.id.prefix.DefaultPrefixGenerator();

    generator.setPrefixGenerator(prefixGenerator);

    prefixGenerator.setPrefix("E3");

    System.out.println(generator.create());



prefixGenerator.setPrefix("E3");用来设置前缀.

日循环ID
如果您的ID是每天都从初始值开始编码时,请使用日循环序号生成器.

    net.jcreate.e3.commons.id.generator.DefaultIDGenerator generator =

       new net.jcreate.e3.commons.id.generator.DefaultIDGenerator();

    net.jcreate.e3.commons.id.sequence.DefaultSequenceGenerator sequenceGenerator =

    net.jcreate.e3.commons.id.sequence.TimeRollingSequenceGenerator.getDayRollingSequenceGenerator();

    sequenceGenerator.setMinValue(1000000);

    sequenceGenerator.setMaxValue(9999999);

    generator.setSequenceGenerator(sequenceGenerator);

    System.out.println(generator.create());





月循环ID
如果您的ID是每月都从初始值开始编码时,请使用日循环序号生成器.

    net.jcreate.e3.commons.id.generator.DefaultIDGenerator generator =

       new net.jcreate.e3.commons.id.generator.DefaultIDGenerator();

    net.jcreate.e3.commons.id.sequence.DefaultSequenceGenerator sequenceGenerator =

    net.jcreate.e3.commons.id.sequence.TimeRollingSequenceGenerator.getMonthRollingSequenceGenerator();

    sequenceGenerator.setMinValue(1000000);

    sequenceGenerator.setMaxValue(9999999);

    generator.setSequenceGenerator(sequenceGenerator);

    System.out.println(generator.create());







年循环ID
如果您的ID是每年都从初始值开始编码时,请使用日循环序号生成器.

    net.jcreate.e3.commons.id.generator.DefaultIDGenerator generator =

       new net.jcreate.e3.commons.id.generator.DefaultIDGenerator();

    net.jcreate.e3.commons.id.sequence.DefaultSequenceGenerator sequenceGenerator =

    net.jcreate.e3.commons.id.sequence.TimeRollingSequenceGenerator.getYearRollingSequenceGenerator();

    sequenceGenerator.setMinValue(1000000);

    sequenceGenerator.setMaxValue(9999999);

    generator.setSequenceGenerator(sequenceGenerator);

    System.out.println(generator.create());


发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Spark上的ip归属地查询

    1.0.32.0|1.0.63.255|16785408|16793599|亚洲|中国|广东|广州||电信|440100|China|CN|113.280637|23.125178 1.1.0.0|1.1.0.255|16842752|16843007|亚洲|中国|福建|福州||电信|350100|China|CN|119.306239|26.075302 ...

  • e3mall项目:环境搭建与测试(初步)

    e3mall项目环境搭建

  • 9. 主动信息收集-snmp扫描、SMB扫描、SMTP扫描

    Hex-STRING: 07 E3 04 07 0B 39 34 00 iso.3.6.1.2.1.25.6.3.1.5.3 = Hex-STRING: 07 E2 0B 11 15 35 08 00 root@root:~# snmpwalk 192.168.37.130 -c public -v 2c iso.3.6.1.2.1.25.6.3.1.2.2 iso.3.6.1.2.1.25....

  • 服务器系统事件id1001,WIN10事件查看器,ID1000,ID1001 問題

    错误应用程序名称: Overwatch.exe,版本: 1.0.2.27174,时间戳: 0x56c53044错误模块名称: Overwatch.exe,版本: 1.0.2.27174,时间戳: 0x56c53044异常代码: 0xc0000005错误偏移量: 0x0000000000400e3b错误进程 ...

  • e3mall项目:内容分类管理(后台)

    e3mall项目:内容分类管理一、web层(ContentCategoryController),位置在e3-manager-web中package cn.e3mall.controller; import cn.e3mall.common.entity.E3Result; import ...

  • 9、Nepxion Discovery 之服务灰度发布参数的支持

    ``Nepxion Discovery`` 对于服务灰度发布参数支持:外置``Header``、 ``Parameter``、``Cookie``、``域名``规则策略驱动。并且还内置本地和远程、局部和全局规则策略驱动。并且还支持正则表达式以及通配表达式支持。...

  • e3mall项目:索引管理模块之一键导入数据到索引库(后台)

    e3mall项目:索引管理模块一、新建子模块(e3-search、e3-search-interface以及e3-search-service),目录结构如下:二、相关配置文件(1)pom.xmle3-search中的pom.xml<?xml version="1.0" ...

  • html2canvas.min.js(生成图片插件)

    /*! * html2canvas 1.0.0-alpha.12 <https://html2canvas.hertzen.com> * Copyright (c) 2018 Niklas von Hertzen <https://hertzen.com&gt... * Released under MIT License */ ...function(A,e){"object...

  • e3mall项目:前台商品详情展示(动态生成)

    e3mall项目:前台商品详情展示准备工作:新建子工程 e3-item-web,并将静态资源导入,包结构如下:一、,相关配置文件以及代码(e3-item-web)(1)pom.xml<?xml version="1.0" encoding="UTF...

  • GB28181国标平台资料整理

    branch=z9hG4bK8210143023101430fa101430b Call-ID: 9ae8ca0e3be8ca0ee2e8ca0ea0e8ca0e16e8c@27.10.24.1 From: ;tag=63a161ccc2a161cc1ba161cc59a161cc To: CSeq: 134349445 MESSAGE Max-Forwards: 70 Expires: 90 ...

  • 部署测试fabric1.0及源码解析

    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e1f67091b0be dev-peer1 .org 2 .example .com -mycc- 1.0 "chaincode -peer.a..." 2 hours ago Up 2 hours dev-peer1 .org 2 .example .com -mycc- ...

  • drone 1.0 安装入门搭建教程

    drone 1.0 安装入门搭建教程 由于 1.0 的更新换代之后,增加了OAuth2支持性更好了, 对github,gitlab,gitea已经非常的友好了,而之前的博客是gogs的,所以今天单独来写一篇关于gitea的,gitlab应该也是类似的. ...

  • e3mall项目:项目改造以及dubbo的应用

    e3mall项目改造(使用SOA架构)一、项目拆分(1)将e3-manager-web从e3-manager中分离,即设置其父工程为:e3-parent,并从e3-manager中拖到e3-parent中。(2)修改e3-manager-web的pom.xml文件,包括:spring的依赖...

  • java环境下开发oauth1.0以及oauth2.0----十分有帮助

    以下是我总结的各个平台的优缺之处,也给大家使用开发文档时增加一些帮助。  首先我觉得一个开放平台开发文档比较重要的几个点:OAuth文档、API文档、SDK、视觉(标示)素材、返回错误码说明这几个方面,当然这...

  • three.js 04-04 之 MeshFaceMaterial 材质

    matArray.push(new THREE.MeshBasicMaterial({color: 0xc41e3a})); matArray.push(new THREE.MeshBasicMaterial({color: 0xffffff})); var cube = new THREE.Mesh(new THREE.BoxGeometry(3, 3, 3), matArray); 在这...

  • e3mall项目:首页(前台)

    e3mall项目:首页一、子模块创建(1)pom.xml中打包方式为war(2)包结构如下:二、相关配置文件(1)springmvc.xml<?xml version="1.0" encoding="UTF-8"?> <beans xmlns...

  • 79.qt qml-如何在QML中使用QCustomPlot之曲线/折线示例(已适配黑白风格)

    /common" import Qt.Qcp 1.0 Item { QcpLine { id: line anchors.fill: parent anchors.margins: 8 axisColor: Qt.rgba(accentColor.r, accentColor.g, accentColor.b, 0.7) Component.onCompleted: { let a = Array...

  • 快应用广告开发、各大手机平台测试id、错误码汇总

    部分平台可能没有测试id,需要先进行app发布验证才能拿到(如果需要的人多,我可以再写一篇如何申请各大id的正式id的文章) ad:通过adUnitId来生成的广告对象。 switchAdUnitIdByBrand() async ...

  • ANR系列之一:ANR显示和日志生成原理讲解

    讲四种类型的ANR是如何产生的: ANR系列之二:Input类型ANR产生原理讲解 ANR系列之三:broadcast类型ANR产生原理讲解 ANR系列之四:ContentProvider类型ANR产生原理讲解 ANR系列之五:Service类型ANR原理讲解 第三块...

  • failed to obtain node locks, tried with lock id [0]; maybe these locations are not writable or multi

    java.lang.IllegalStateException: failed to obtain node locks, tried [[/usr/share/elasticsearch/data]] with lock id [0]; maybe these locations are not writable or multiple nodes were started without ...

Global site tag (gtag.js) - Google Analytics