Gerar ID unica

4 respostas
A

Fala povo! Blz? Essa é a minha primeira msg no forum.

Gostaria de saber como gerar um ID.
Algo como um método que me retorne uma string única… que na próxima vez que o mesmo é chamado, não retorne strings já retornadas.

Dei uma olhada na classe UID (java.rmi.server.UID) mas ela retorna uma string muito longa (24 caracters) que envolve numeros letras e separadores (’-’ e ‘:’).

Alguem já precisou de algo parecido ?
Alguém pode me dar dicas de como gerar uma string única baseado no tempo (h:m:s:ms:etc hehe) ?

Qq ajuda é bem vinda.
Valeu!

4 Respostas

S

mas q formato vc precisa? quais caracteres, tamanho?
e pra q vai servir isso?

a forma mais facil de gerar ID unica pequena e sem caracteres estranhos, eh pegar um numero e ir incrementando :slight_smile: (trivial mas poderoso)
mas aí depende pra q vc vai usar isso…

K

O timestamp nao serve? Veja em http://java.sun.com/j2se/1.4.2/docs/api/java/util/Date.html#getTime()

Marcio Kuchma

T

Neste artigo há também um método alternativo, usando SecureRandom e digests. (aqui ele menciona java.rmi.server.UID, mas para mostrar que não é muito legal.)

http://www.javapractices.com/Topic56.cjp

O tal número identificador único pode ser também gerado por um banco de dados (SEQUENCEs no Oracle, campos UUID no SQL Server etc.). A vantagem é que se você tem um sistema distribuído você centraliza a geração de tais números, e a desvantagem é que a geração é centralizada. (Como a vida é complicada - uma coisa que é vantagem é ao mesmo tempo desvantagem…)

A

Valeu povo! Ótimas dicas!!
No meu caso, o timestamp do kuchma vai funcionar direntinho :wink:

Brigadão mesmo :!:

Criado 31 de outubro de 2004
Ultima resposta 1 de nov. de 2004
Respostas 4
Participantes 4