我一直堅持這個問題幾個小時:有3個表,其中一個通過地點編號和托盤ID連接其他人。爲了找出特定托盤上有多少個樣本,我使用托盤ID彙總了這些地點,這在純SQL代碼中是完美的。從Java中的ResultSet中檢索聚合的SQL值
我的Java代碼:
ps = connection.prepareStatement("SELECT TRAYID, COUNT(PlaceNo) AS OCCUPIED " +
"FROM PLACE " +
"GROUP BY TRAYID " +
"HAVING TRAYID = ?");
ps.setInt(1, trayId);
rs = ps.executeQuery();
if (!rs.isBeforeFirst()) { throw new CoolingSystemException(); }
else {
spaceOccupied = rs.getInt("OCCUPIED");
隨着最後一行程序崩潰。我也試過getInt(1)
而不是名字,但沒有任何作用。如果結果集是空的它會崩潰在
if (!rs.isBeforeFirst()) { throw new CoolingSystemException(); }
我知道肯定是有,我確信它是這個地方,因爲我記錄的值
Image: DBeaver using the same TrayID
它在每一行之前和之後的每個可以想象的點。
有沒有人有一個想法如何解決它?我也嘗試了get ...()函數中的每一個數據類型:(
有什麼例外 – rafaelim
你不叫'rs.next()'anywh ERE。使用結果集的慣用方式是在while(rs.next())'循環中執行。 –
該死的......非常感謝下次電話已經第三次打破我的脖子了。只是不要忘記它 - – Philipp