- 私は前の質問を読んだことがありますが、最初は似ているかもしれませんが、私の問題と一致するものはありません。 :/ _
私はJava(JDBC)上のローカルデータベースで作業しています。ボタンを押すと、「SELECT」クエリの結果が得られるはずです。これまでのところとても良いですが、私の初心者の脳が理解できない何らかの理由で、私はをクエリの1つの行にしています。私は "DB Browser for SQLite"で同じ正確なクエリを実行しても正しい結果(1行以上)を返します。 これは、私は、クエリの結果を取得するために使用しています方法です。この方法は、クラッシュしないSQLiteクエリは1行しか返しません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
}
だから私は(もちろん私は-1、などそれは0ではないことを確認しました)、私はその番号を使用してクエリを実行し、テーブルからこの魔法の数を取得します。あなたは列からなるテーブルの構造を考えることができます:
number |名前|数量|
ここで、 'number'はゼロ以外です。 この方法を使用してDB上でクエリを実行すると、おそらく安全でないかもしれないし、セキュリティの脅威が出るかもしれないが、今はそうではないことを理解しています。私はすでにこのプロジェクトをかなり長い間働いており、私は多くのばかげたミスを経験しており、これはまだ彼らの1つだと思います。どんな助けも是認されています! :D
コードをデバッグしていますか?あなたがテーブルから与える価値(数字の価値)?与えられた値を持つデータベースに複数の行が存在しますか? –
@ hadi。テーブルが適切な数を与えることを、私はそれを試しました。私はまた、 "SQL"文字列を印刷する、クエリが正しいです。はい、私は同じクエリを実行するいくつかの外部ソフトウェア "DB Browser for SQLite"でデータベースを閲覧したため、データベースに複数の行が存在します。 –
コードが例外をスローしていませんか?デバッガでステップ実行してみてください –