【问题标题】:Auto number of unique field [closed]唯一字段的自动编号[关闭]
【发布时间】:2014-01-15 18:07:55
【问题描述】:

你知道如何在java中生成自动编号吗?我需要将它用于访客 ID。每次我添加一个新客人时,每个客人都有一个唯一的 ID。非常感谢您的帮助

非常感谢

【问题讨论】:

  • 只增加一个计数器。

标签: java


【解决方案1】:

计数器

您可以增加您的 ID 并将其视为计数器

UUID

您还可以使用UUID.randomUUID() 生成唯一的字符串

用于检索类型 4(伪随机生成)UUID 的静态工厂。 UUID 是使用强加密伪随机数生成器生成的。

UUID 编号是唯一的,并在 RFC 4122 中进行了描述

使用示例

String id = UUID.randomUUID().toString()

JPA

对于 JPA 实体,只需使用 @GeneratedValue

@Entity
public class MyEntity {
    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    long id;

}

【讨论】:

    【解决方案2】:

    导入 java.util.UUID;

    公共类 GenerateUUID {

    public static final void main(String... aArgs){
    //generate random UUIDs
        UUID idOne = UUID.randomUUID();
        UUID idTwo = UUID.randomUUID();
        log("UUID One: " + idOne);
        log("UUID Two: " + idTwo);
    }
    
    private static void log(Object aObject){
        System.out.println( String.valueOf(aObject) );
    }
    

    }

    取自:http://www.javapractices.com/topic/TopicAction.do?Id=56

    【讨论】:

    • 这与我的回答有什么不同吗? :)
    • 是我的第一篇文章:P 正忙于弄清楚格式和所有这些,但还是没弄好!到那时你已经发布了嘿
    • 好的,我赞成你的回答,干得好:)
    【解决方案3】:
    public class AutoNumber {
        private int counter = 0;
        public int getNumber() {
            int tmp = counter;
            counter++;
            return tmp;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      • 2019-02-27
      • 2022-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多