第一次尝试使用 SQLite+Java,当我尝试执行一个简单的简单查询时收到错误。
错误: 未由 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();
最佳答案
这是一个简单的剪切/粘贴样式错误。使用准备好的语句时,不应将 SQL 传递到 executeQuery
。
改变:
try(ResultSet rs = stmt.executeQuery(sql)){
收件人:
try(ResultSet rs = stmt.executeQuery()){
这覆盖了 preparedStatement
。
它提示的是执行带有“?”的查询因为它不是准备好的查询。
关于java - 简单查询 : not implemented by SQLite JDBC driver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20723711/