小工具知识网

当前位置: 首页 > 行业知识 > 分布式ID选型对比(4)

行业知识

分布式ID选型对比(4)

2026-11-02 02:07:31 来源:互联网转载

百度UID generator

一, 创建表: worker_node(在项目启动时初始化生成workId)

()
CREATE TABLE `worker_node` (  `ID` bigint NOT NULL AUTO_INCREMENT COMMENT 'auto increment id',  `HOST_NAME` varchar(64) NOT NULL COMMENT 'host name',  `PORT` varchar(64) NOT NULL COMMENT 'port',  `TYPE` int NOT NULL COMMENT 'node type: ACTUAL or CONTAINER',  `LAUNCH_DATE` date NOT NULL COMMENT 'launch date',  `MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'modified time',  `CREATED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'created time',  PRIMARY KEY (`ID`)) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3 COMMENT='DB WorkerID Assigner for UID Generator';

二, 创建Model及Exmple、Dao

Model: WorkerNode

()
package org.com.spi.model;import java.util.Date;public class WorkerNode {    private Long id;    private String hostName;    private String port;    private Integer type;    private Date launchDate;    private Date modified;    private Date created;    public Long getId() {        return id;    }    public void setId(Long id) {        this.id = id;    }    public String getHostName() {        return hostName;    }    public void setHostName(String hostName) {        this.hostName = hostName == null ? null : hostName.trim();    }    public String getPort() {        return port;    }    public void setPort(String port) {        this.port = port == null ? null : port.trim();    }    public Integer getType() {        return type;    }    public void setType(Integer type) {        this.type = type;    }    public Date getLaunchDate() {        return launchDate;    }    public void setLaunchDate(Date launchDate) {        this.launchDate = launchDate;    }    public Date getModified() {        return modified;    }    public void setModified(Date modified) {        this.modified = modified;    }    public Date getCreated() {        return created;    }    public void setCreated(Date created) {        this.created = created;    }}

Example: WorkerNodeExample

package org.com.spi.model;import java.util.ArrayList;import java.util.Date;import java.util.Iterator;import java.util.List;public class WorkerNodeExample {    protected String orderByClause;    protected boolean distinct;    protected List oredCriteria;    public WorkerNodeExample() {        oredCriteria = new ArrayList();    }    public void setOrderByClause(String orderByClause) {        this.orderByClause = orderByClause;    }    public String getOrderByClause() {        return orderByClause;    }    public void setDistinct(boolean distinct) {        this.distinct = distinct;    }    public boolean isDistinct() {        return distinct;    }    public List getOredCriteria() {        return oredCriteria;    }    public void or(Criteria criteria) {        oredCriteria.add(criteria);    }    public Criteria or() {        Criteria criteria = createCriteriaInternal();        oredCriteria.add(criteria);        return criteria;    }    public Criteria createCriteria() {        Criteria criteria = createCriteriaInternal();        if (oredCriteria.size() == 0) {            oredCriteria.add(criteria);        }        return criteria;    }    protected Criteria createCriteriaInternal() {        Criteria criteria = new Criteria();        return criteria;    }    public void clear() {        oredCriteria.clear();        orderByClause = null;        distinct = false;    }    protected abstract static class GeneratedCriteria {        protected List criteria;        protected GeneratedCriteria() {            super();            criteria = new ArrayList();        }        public boolean isValid() {            return criteria.size() > 0;        }        public List getAllCriteria() {            return criteria;        }        public List getCriteria() {            return criteria;        }        protected void addCriterion(String condition) {            if (condition == null) {                throw new RuntimeException("Value for condition cannot be null");            }            criteria.add(new Criterion(condition));        }        protected void addCriterion(String condition, Object value, String property) {            if (value == null) {                throw new RuntimeException("Value for " + property + " cannot be null");            }            criteria.add(new Criterion(condition, value));        }        protected void addCriterion(String condition, Object value1, Object value2, String property) {            if (value1 == null || value2 == null) {                throw new RuntimeException("Between values for " + property + " cannot be null");            }            criteria.add(new Criterion(condition, value1, value2));        }        protected void addCriterionForJDBCDate(String condition, Date value, String property) {            if (value == null) {                throw new RuntimeException("Value for " + property + " cannot be null");            }            addCriterion(condition, new java.sql.Date(value.getTime()), property);        }        protected void addCriterionForJDBCDate(String condition, List values, String property) {            if (values == null || values.size() == 0) {                throw new RuntimeException("Value list for " + property + " cannot be null or empty");            }            List dateList = new ArrayList();            Iterator iter = values.iterator();            while (iter.hasNext()) {                dateList.add(new java.sql.Date(iter.next().getTime()));            }            addCriterion(condition, dateList, property);        }        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {            if (value1 == null || value2 == null) {                throw new RuntimeException("Between values for " + property + " cannot be null");            }            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);        }        public Criteria andIdIsNull() {            addCriterion("ID is null");            return (Criteria) this;        }        public Criteria andIdIsNotNull() {            addCriterion("ID is not null");            return (Criteria) this;        }        public Criteria andIdEqualTo(Long value) {            addCriterion("ID =", value, "id");            return (Criteria) this;        }        public Criteria andIdNotEqualTo(Long value) {            addCriterion("ID ", value, "id");            return (Criteria) this;        }        public Criteria andIdGreaterThan(Long value) {            addCriterion("ID >", value, "id");            return (Criteria) this;        }        public Criteria andIdGreaterThanOrEqualTo(Long value) {            addCriterion("ID >=", value, "id");            return (Criteria) this;        }        public Criteria andIdLessThan(Long value) {            addCriterion("ID ", value, "hostName");            return (Criteria) this;        }        public Criteria andHostNameGreaterThanOrEqualTo(String value) {            addCriterion("HOST_NAME >=", value, "hostName");            return (Criteria) this;        }        public Criteria andHostNameLessThan(String value) {            addCriterion("HOST_NAME ", value, "port");            return (Criteria) this;        }        public Criteria andPortGreaterThanOrEqualTo(String value) {            addCriterion("PORT >=", value, "port");            return (Criteria) this;        }        public Criteria andPortLessThan(String value) {            addCriterion("PORT ", value, "type");            return (Criteria) this;        }        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {            addCriterion("TYPE >=", value, "type");            return (Criteria) this;        }        public Criteria andTypeLessThan(Integer value) {            addCriterion("TYPE ", value, "launchDate");            return (Criteria) this;        }        public Criteria andLaunchDateGreaterThanOrEqualTo(Date value) {            addCriterionForJDBCDate("LAUNCH_DATE >=", value, "launchDate");            return (Criteria) this;        }        public Criteria andLaunchDateLessThan(Date value) {            addCriterionForJDBCDate("LAUNCH_DATE ", value, "modified");            return (Criteria) this;        }        public Criteria andModifiedGreaterThanOrEqualTo(Date value) {            addCriterion("MODIFIED >=", value, "modified");            return (Criteria) this;        }        public Criteria andModifiedLessThan(Date value) {            addCriterion("MODIFIED ", value, "created");            return (Criteria) this;        }        public Criteria andCreatedGreaterThanOrEqualTo(Date value) {            addCriterion("CREATED >=", value, "created");            return (Criteria) this;        }        public Criteria andCreatedLessThan(Date value) {            addCriterion("CREATED 

上一篇:独家揭秘,轻松获取原神纠缠之缘的秘诀,你绝对不能错过!

下一篇:轻松上手!SORL下载指南,简洁教程助你轻松掌握