- 我看了前面的問題,但他們都不符合我的問題,雖然他們可能乍看相似。 :/ _
所以,我正在研究Java(JDBC)上的本地數據庫。當我按下按鈕時,我應該會得到「SELECT」查詢的結果。到目前爲止這麼好,但由於某種原因,我的初學者大腦不瞭解,我一直從查詢中獲得只有一行行。我甚至在「DB Browser for SQLite」上運行同樣精確的查詢,並返回正確的結果(1+行)。 所以這是我使用來獲取查詢結果的方法:SQLite的查詢只返回一行JDBC Java數據庫
public ResultSet returnBill(int no) throws SQLException{
String sql = "SELECT * FROM billList WHERE no = " + no + " ;";
ResultSet thisSet = stmt.executeQuery(sql); // stmt is a 'Statement' type variable
return thisSet;
}
的方法不會崩潰,但它只返回應返回超過2(,而查詢的第一個行( thisSet.next()) RUNS ONCE)。我在程序中運行了其他的「SELECT」查詢,它們應該返回多於一行,並且它們都工作正常,所以它不是無法啓動/關閉連接等問題。
下面是正在使用:
int number = table.getModel().getValueAt(rows, 0);
ResultSet thisSet = db.returnBill(number);
while (thisSet.next()){
String name = thisSet.getString("name");
int quantity = thisSet.getInt("quantity");
// do something with the returned data
}
所以我得到這個神奇的數字從一個表(當然我確信這不是0,-1等)和我運行使用該號碼查詢。你可以把由列的表的結構:
號|名稱|數量|
其中 '編號' 非零。 據我所知,可能使用這種方法在數據庫上運行查詢可能不安全或可能會發布安全威脅,但現在情況並非如此。我已經在這個項目上工作了很長時間了,我經歷了許多愚蠢的錯誤,我認爲這只是其中之一。任何幫助都是令人欣慰的! :d
你調試代碼?你從表中給出了什麼值(數值)?數據庫中是否存在具有給定值的多行? –
@hadi。曼斯里桌子給出了一個合適的數字,我試了一下。我也打印「sql」字符串,查詢是正確的。是的,因爲我在一些外部軟件「SQLite數據庫瀏覽器」上查看數據庫的數據庫,因此我甚至可以運行相同的查詢 –
您是否在代碼中,也沒有拋出一些異常?嘗試通過調試器逐步完成 –