2016-06-15 15 views
0

は、ここで私はそれが存在するのsqliteデータベースに見ることができますが、ここでは私のJavaコードjavaのjdbc prepared statementを使ってsqlite textカラムを読み込む方法は?

Connection sqliteConnection = DriverManager.getConnection(db); 
PreparedStatement preparedStatement = sqliteConnection.prepareStatement("select * from hello where export_data = ?;"); 
preparedStatement.setString(1, "ABD19E3C63"); // hex string 
    ResultSet resultSet = preparedStatement.executeQuery(); 
    resultSet.next(); 
    importData = resultSet.getString("import_data"); 
    System.out.println(importData); // prints nothing although I checked in the sqlite database that it exists. 

そうするimportData印刷物の何物でもあり、私のsqliteのテーブル

CREATE TABLE hello ( 
    id INTEGER PRIMARY KEY AUTOINCREMENT, 
    import_data text, 
    export_data text 
); 

です。なぜわからないの?

SQLiteのクエリ

select hex(import_data) from hello where hex(export_data)="ABD19E3C63"; // This works 

私はあなたが次のような文をループを使用する必要がありますテキスト

+0

この正確なクエリをSQLiteから直接実行しようとしましたか? –

+0

はい。私はちょうどそれを私の質問に加えました。 – user1870400

+0

私はあなたのデータセットに精通していませんが、クエリがSQLIiteで動作しない場合、おそらくSQLiteを呼び出すJavaでは動作しません。 –

答えて

-1

として両方の列を宣言したものの、上記のクエリは、sqliteの中で動作します。

while (resultSet.next()) { 
    String import_data= resultSet.getString("import_data"); 
    System.out.println("Import_data"+import_data); 
} 
+0

私はちょうど最初の行を取得したいだけです – user1870400

+0

ちょうどブールを返すresultSet.first() –

+0

を使用してください – user1870400

0

これを試してください。

PreparedStatement preparedStatement = sqliteConnection.prepareStatement("select * from hello where hex(export_data) = ?;"); 
関連する問題