La génération des clés uniques à l'aide de RandomStringUtils de apache commons
Veuillez trouver ci-dessous le code que j'ai utilisé pour générer des chaînes aléatoires à l'aide de RandomStringUtils de apache commons.
String key = RandomStringUtils.random(5, String.valueOf(System.currentTimeMillis()));
Je suis en limitant la clé de 5 caractères. Mon but est de générer des clés uniques pour chacun des enregistrements quand je suis à l'insertion d'un nouvel enregistrement dans la base de données. Sera le code ci-dessus, être adapté à la tâche correspondante et pourrais-je être assuré que je vais obtenir une clé unique à partir du code ci-dessus chaque fois que l'insertion d'un nouvel enregistrement.
- aléatoire != unique. Si vous voulez d'utilisation unique Uuid
Vous devez vous connecter pour publier un commentaire.
Une séquence aléatoire de chaînes aurez toujours la possibilité de répéter, sinon c'est pas vraiment aléatoire.
RandomStringUtils
n'est pas vraiment aléatoire, mais c'est en essayant d'être aussi proche de hasard, car il peut être, ce qui semble contraire à votre objectif. Si vous devez utiliser généré de façon aléatoire, les clés, alors vous devez au moins utiliser java.util.UUID.randomUUID parce que c'est fait pour être utilisé de cette façon.Vous pouvez trouver ce lien intéressant: Générer des Identifiants uniques
Pas, au hasard de ne pas dire unique. Vous pouvez essayer d'utiliser des Uuid pour générer des clés uniques.
Vous pouvez le faire avec RandomStringUtils, mais vous avez aussi de tester l'id avant d'essayer de l'insérer.
si oui goto 1
si aucun insert id
Un UUID est très longue et peut ne pas être ce que vous voulez.