gpt4 book ai didi

java-生成id(字符串和整数的组合)

转载 作者:行者123 更新时间:2023-12-01 17:30:34 25 4
gpt4 key购买 nike

我正在 NetBeans (java) 中制作一个应用程序。该应用程序具有字符串和整数的唯一 ID 组合,例如 abc/111xyz/253,当数据库中出现新条目时,整数部分应增加,即 abc/112xyz/254

问题是整数部分的值会以适当的方式增加,直到达到 10,但此后它不会增加,并且对于数据库中的其他条目保持不变。

我使用了以下代码 -

try{
String sql = "SELECT RegNumber FROM Death ORDER BY RegNumber DESC ";
pst = conn.prepareStatement(sql);

rs = pst.executeQuery();

if (rs.next()) {

String add1 = rs.getString("RegNumber");
String[] parts= add1.split("/");
String part1= parts[0];
String part2= parts[1];
int a,b;
a= Integer.parseInt(part2);
b=a+1;

jTextField20.setText(""+part1+"/"+b);


JOptionPane.showMessageDialog(null, "done");
}
}

整数部分增加到10”意味着如果我像abc/1一样启动数据库中id的第一个值,那么新的id会自动为下一个条目生成递增的值 1 为 abc/2,下一个条目为 abc/3,依此类推,顺序,如下所示:abc/4,...,abc/10

但是当达到 abc/10 时,新生成的 ID 保持不变,即数据库中每个新条目的 abc/10 。 (我使用的是 MS Access 2007,idtext 类型)。数据库中的第一个 id 由应用程序本身创建。

如果有人有其他替代方法来生成 id,请告诉我。

最佳答案

问题是

String sql = "SELECT RegNumber FROM Death ORDER BY RegNumber DESC   ";

将按字母降序排序,并按字母顺序排列

"abc/9" > "abc/10"

这就是为什么你的程序总是一次又一次地获取 9...

我认为您必须拆分该列进行存储,并将数字部分作为实际数字类型存储在数据库中。这可能并不像听起来那么难,您始终可以对 2 个字段进行排序

String sql = "SELECT RegNumber FROM Death ORDER BY RegString DESC, RegNumber DESC   ";

在某些情况下(即,如果 RegNumber 未重置,例如当字符串部分更改时),您还可以考虑对 RegNumber 部分使用 SERIAL(自动增量)数据类型,以进一步简化插入逻辑。

关于java-生成id(字符串和整数的组合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11442884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com