/*質問*/異なる結果
こんにちは、私は、Eclipse 3.6.1(ヘリオス)を使用していると私は、JDBCインタフェースを介してSQLiteデータベースと連携答えました。問題は、デバッグモードと実行モードで異なる結果になっていることです。ここにテストケースがあります:
public static void main(String[] args){
String db_name = /* path to some SQLite database */;
try {
// If we using ch-werner SQLite Java Wrapper/JDBC Driver
Class.forName("SQLite.JDBCDriver");
// If we using Xerial or Zentus impl.
Class.forName("org.sqlite.JDBC");
Connection con = DriverManager.getConnection("jdbc:sqlite:" + db_name);
Statement statement = con.createStatement();
ResultSet rs;
try {
rs = statement.executeQuery("SELECT * FROM sites;");
boolean flag = rs.isBeforeFirst(); // Breakpoint here
System.out.println(flag);
if (flag) rs.next();
System.out.println(rs.getObject(1));
} finally {
statement.close();
con.close();
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
私はJDK 1.6.0、1.6.0_23、JRE 1.6.0を試しました。異なるSQLiteテストデータベースに対して、JDBC-SQLite:ch-werner SQLite Java Wrapper/JDBC Driver(r2011-01-06)、Zentus SQLiteJDBC(0.5.6)、およびXerial SQLite JDBC Driver(Zentus拡張、3.6.20および3.7.2を試しました)の3つの実装。
私は実行コンフィギュレーションの下でこれを実行した場合、それは罰金(プリントtrue
と目的のオブジェクトを)動作しますが、私は(ステップオーバーのに続いて、ブレークポイントを使用して、)ステップバイステップのデバッグをしようとすると、それは常にfalseを出力し、getObject
が失敗しました異なる理由(ch-werner implの下のjava.lang.ArrayIndexOutOfBoundsException: 2 >= 1
、およびその他の2つの下のjava.lang.IllegalStateException: SQLite JDBC: inconsistent internal state
)です。 JVM引数は設定されていません。最初からコードを記述するだけです。私はNetBeans 6.9の下でこのバグを再調整できませんでした。
何か間違っているのですか?
あなたの推測はまったく正しいです、私はそのような愚かであることのために申し訳ありません:)私はあなたの答えをすぐに受け入れます。 –