我为我的迷你商店制作了一些软件,我真的很困惑在我的地方购物的号码排队顾客。请有人帮助我。 我有一个方法,其中包含从我的客户生成新队列的内容。但是当我在第二天打开我的应用程序时,我希望队列再次重置为1。
我的sytax Java like =
public void acak() {
try {
String generate = "SELECT COALESCE (MAX(no_antrian),0) AS kode from transaksi where tg_transaksi='" + tanggal + "'";
Statement stat = con.createStatement();
ResultSet res = stat.executeQuery(generate);
if (res.next()) {
try {
String kd_barang = res.getString("kode").substring(1);
String AN = "" + (Integer.parseInt(kd_barang) + 1);
String Nol = "";
if (AN.length() == 1) {
Nol = "000";
} else if (AN.length() == 2) {
Nol = "00";
} else if (AN.length() == 3) {
Nol = "0";
} else if (AN.length() == 4) {
Nol = "";
}
lblnoantrian.setText(Nol + AN);
} catch (NumberFormatException ex) {
System.out.println(ex.getMessage());
}
} else {
lblnoantrian.setText("0001");
}
} catch (Exception e) {
e.printStackTrace();
}
}
当我在第二天运行这个程序时,我看到了像:
这样的错误java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:504)
at java.lang.Integer.parseInt(Integer.java:527)
这个错误指的是:
String AN = "" + (Integer.parseInt(kd_barang) + 1);
也许任何人都可以帮助我..
答案 0 :(得分:0)
这不适合使用COALESCE
正如其描述所述
返回列表中的第一个非NULL值,如果没有非NULL值,则返回NULL。
mysql> SELECT COALESCE(NULL,1);
-> 1
mysql> SELECT COALESCE(NULL,NULL,NULL);
-> NULL
如果有一个空字符串,那么它的输出将为空字符串检查
SELECT COALESCE (MAX(NULL),0)
->0
SELECT COALESCE (MAX(''),0)
->
SELECT COALESCE ('',0)
->
你可以看到最后两个查询返回空字符串
使用此查询替换您的查询,我希望这将有效
SELECT
CASE
WHEN COALESCE (MAX(no_antrian), 0) = ''
THEN 0
ELSE COALESCE(MAX(no_antrian), 0)
END AS kodec
FROM
transaksi
WHERE tg_transaksi = '" + tanggal + "' "