2013-12-21 5 views
5

SQLite + Javaを使用すると最初にクラックし、単純な単純なクエリを実行しようとするとエラーが発生します。単純なクエリ:SQLite JDBCドライバで実装されていません

エラー:SQLiteのJDBCドライバで実装されていません

問合せ:

String sql = 
    "select Asset, Qty*Price+Fees as Cost \n" + 
    "from Transactions t \n" + 
    "  inner join TransactionItems i on t.Id = i.TransactionId \n" + 
    "where TransDate <= ? \n"; 

try (PreparedStatement stmt = cnn.prepareStatement(sql)) { 
    java.sql.Date dte = new java.sql.Date(SumDate().getTimeInMillis()); 
    stmt.setDate(1, dte); 

    try(ResultSet rs = stmt.executeQuery(sql)) { 
     while(rs.next()) { 
      PortfolioSummaryItem item = new PortfolioSummaryItem(PortfolioSummary.this); 
      item.Load(rs); 
      items.put(item.asset,item); 
     } 
     rs.close(); 
    } 

    stmt.close(); 
+0

"\ n"とは何ですか? –

+0

完全なエラーメッセージをコールトレース(使用可能な場合)と一緒に投稿してください。 –

+0

"\ n"は主にデバッグ用です(エディタにクエリを切り取り貼り付けます)。 –

答えて

20

これは、単純なカット/ペーストスタイルの誤りでした。プリペアドステートメントを使用する場合は、SQLをexecuteQueryに渡すべきではありません。

変更:

try(ResultSet rs = stmt.executeQuery(sql)){ 

へ:

try(ResultSet rs = stmt.executeQuery()){ 

これはpreparedStatementをオーバーライドました。

「?」でクエリを実行していると不平を言っていました。それは準備された質問ではなかったからです。

0

チェックあなたはLIBSのフォルダを持っているJDBCドライバ。 呼び出されたメソッドが実装されていないようです。

はここからドライバをダウンロードしてみてください: https://bitbucket.org/xerial/sqlite-jdbc/downloads

+0

それは私にエラーを与えるドライバです –

+0

1 - ダブルチェックできますか?道に他の瓶がありますか? 2 - ドライバを設定する行を追加してください。 –

+0

1-IDEでlibのリンクを解除すると、「No suitable driver found」と表示されます。 2.「ドライバを設定する」とはどういう意味ですか? –

関連する問題