2016-04-25 23 views
0

私はユーザ情報を持つデータベースを持っていますが、データベースの整数を返すように静的にしたいのですが、私にこのエラー:"SQLite JDBCドライバで実装されていません"

0 
java.sql.SQLException: not implemented by SQLite JDBC driver 
    at org.sqlite.jdbc3.JDBC3PreparedStatement.unused(JDBC3PreparedStatement.java:466) 
    at org.sqlite.jdbc3.JDBC3PreparedStatement.executeQuery(JDBC3PreparedStatement.java:506) 
    at dysanix.main.checkUserColumnInt(main.java:726) 
    at dysanix.main.main(main.java:50) 

そして、これは私のコードです:

public static int checkUserColumnInt(String column, String user) { 
     try { 
      Connection connection = DriverManager.getConnection("jdbc:sqlite:Database.db"); 
      String query = "Select ? from userSettings WHERE user = ?"; 
      PreparedStatement statement = connection.prepareStatement(query); 

      statement.setString(1, column); 
      statement.setString(2, user); 

      ResultSet result = statement.executeQuery(query); 

      result.next(); 
      int columnResult = result.getInt(column); 
      return columnResult; 
     } catch (Exception e) { 
      e.printStackTrace(); 
      return 0; 
     } 
    } 

誰かが私が間違ってやっているのか理解していますか?私はGoogleのものにしようとしましたが、周りのコードを変更すると、私はあるエラーから次のエラーに移動しました...だから、私はもうこの時点ではそれほど確かではありません。

ありがとうございます!

編集:私はJDBCドライバのsqlite-JDBC-3.8.11.2.jar

+0

使用しているSQLiteドライバはどれですか? – Kai

+0

@カイああ、言及を忘れてしまった! "sqlite-jdbc-3.8.11.2.jar"今質問を更新して、ありがとう! –

+0

catchブロックでは、のためにが実行されなかったことに注意してください。あなたはそれをデバッグしようとしましたか?最初の行の後に有効な接続オブジェクトを取得しますか? –

答えて

4

PreparedStatement.executeQuery(String sql)が実装されていないに実行しています。私はちょうどexecuteQuery()に電話したいと思う。クエリは既にPreparedStatementによって定義されています。

+0

ありがとう!あなたは華麗です!私はPreparedStatementに移動するときにそれを削除するのを忘れてしまった!しかし、今私は新しいエラーを取得しています... PrepareStatement(ResultSet Closed)に移動する前に取得していたもの - 私の質問を更新する –

+0

ああ、私は既にこれを今更新しました。このサイトをきれいに保つための努力。そして、私は 'while(result.next()){}'ループでこれを行うでしょうか?私はすでにそれを試みたので、それは私に同じエラーを与える。私の主なコードは次のとおりです: 'Class.forName(" org.sqlite.JDBC "); System.out.println(checkUserColumnInt(" coins "、lastUser));' –

+0

新しい質問...私はロールバックしましたあなたが感覚を守るためのこの質問。 – Kai

関連する問題