第一次破解使用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
。
它抱怨的是执行带有“?”的查询 因为它不是准备好的查询。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句