如何像
Rxt-AA0001
Rxt-AA0002
Rxt-AA0003
...
...
Rxt-AA9999
Rxt-AB0001
Rxt-AB0002
用这个
public class UserIdGenerator extends SequenceStyleGenerator {
public static final String VALUE_PREFIX_PARAMETER = "valuePrefix";
public static final String VALUE_PREFIX_DEFAULT = "";
private String valuePrefix;
public static final String NUMBER_FORMAT_PARAMETER = "numberFormat";
public static final String NUMBER_FORMAT_DEFAULT = "%d";
private String numberFormat;
@Override
public Serializable generate(SharedSessionContractImplementor session,
Object object) throws HibernateException {
return valuePrefix + String.format(numberFormat, super.generate(session, object));
}
@Override
public void configure(Type type, Properties params,
ServiceRegistry serviceRegistry) throws MappingException {
super.configure(LongType.INSTANCE, params, serviceRegistry);
valuePrefix = ConfigurationHelper.getString(VALUE_PREFIX_PARAMETER,
params, VALUE_PREFIX_DEFAULT);
numberFormat = ConfigurationHelper.getString(NUMBER_FORMAT_PARAMETER,
params, NUMBER_FORMAT_DEFAULT);
}
}
这是我在模型中的用户id
@Id
@GeneratedValue(generator = "user_seq_generator", strategy = GenerationType.SEQUENCE)
@GenericGenerator(name = "user_seq_generator", strategy = "user.util.UserIdGenerator", parameters = {
@Parameter(name = UserIdGenerator.INCREMENT_PARAM, value = "1"),
@Parameter(name = UserIdGenerator.VALUE_PREFIX_PARAMETER, value = "RxT-AA"),
@Parameter(name = UserIdGenerator.NUMBER_FORMAT_PARAMETER, value = "%04d") })
@Column(name = "user_id")
private String Id;
我能够生成Alpha数字id,但我不确定如何增加字符
它可以很简单地完成——参见下面的课程。
然而,根据目的,使用UUID可能更有益,如@某人所建议的
import java.util.Arrays;
public class AlphaNumber {
public static char[] ALPHA_NUMBER_CHARS = "0123ABC".toCharArray(); // add here your characters
private int[] number = new int[32]; // here you control the maximum size of the number
private int size = 0; // here we control the actual size of the number
public AlphaNumber() {
Arrays.fill(number,0);
}
public String inc() {
for(int i=0;i<=size;i++) {
number[i]++;
if (number[i] < ALPHA_NUMBER_CHARS.length) {
break;
}
number[i]=0;
size = Math.max(i+1,size);
}
return toString();
}
public String toString() {
StringBuilder r = new StringBuilder();
for (int i = size; i>=0; i--) {
r.append(ALPHA_NUMBER_CHARS[number[i]]);
}
return new String(r);
}
public static void main(String[] args) {
AlphaNumber a = new AlphaNumber();
for (int i = 0; i < 100; i++) {
System.out.println(a.inc());
}
}
}
通常在创建ID时,最好不要增加ID。这使他们不安全。此视频包含一个很好的解释:https://www.youtube.com/watch?v=gocwRvLhDf8
Java有一个用于生成ID的内置UUID类。这是它的javadoc:https://docs.oracle.com/javase/7/docs/api/java/util/UUID.html
问题内容: 我需要编写一个SQL查询以在SQL中打印以下非字母序列 0001,0002,…,0009,000A,…,000Z,…,0010,0011,…,001A,…等等,直到…,ZZZZ 请注意:所有字符均大写。 提前致谢 问题答案: 您可以创建如下函数: 然后像这样使用它: 或者,不创建函数:
问题内容: 如何生成(伪)随机字母数字字符串,例如:PHP中的“ d79jd8c”? 问题答案: 首先用所有可能的字符组成一个字符串: 您还可以使用range()更快地完成此操作。 然后,在一个循环中,选择一个随机数并将其用作字符串的索引以获取随机字符,然后将其附加到您的字符串中: 是随机字符串的长度。
我试图在talend中找到一种方法来生成一个字母数字计数器,该计数器以以下方式创建数字:YYXXXXXXXX 哪里 null 我们一年中能容纳的最后一个id将是20zzzzzzzz 这怎么做?
问题内容: 如何在Swift中生成随机的字母数字字符串? 问题答案: Swift 4.2更新 Swift 4.2在处理随机值和元素方面引入了重大改进。您可以在此处阅读有关这些改进的更多信息。这是减少到几行的方法: Swift 3.0更新 原始答案:
本文向大家介绍C#程序生成随机小写字母,包括了C#程序生成随机小写字母的使用技巧和注意事项,需要的朋友参考一下 首先,设置Random class- 在方法下设置范围。这将显示一个介于0到26之间的字母。 这是完整的代码- 示例 输出结果
本文向大家介绍php生成数字字母的验证码图片,包括了php生成数字字母的验证码图片的使用技巧和注意事项,需要的朋友参考一下 php生成数字字母的验证码图片 以上所述就是本文的全部内容了,希望大家能够喜欢。