Jef*_*ave 9 java sql sqlite jdbc
首先使用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();
Run Code Online (Sandbox Code Playgroud)
Jef*_*ave 29
这是一个简单的剪切/粘贴样式错误.使用预准备语句时,您不应该将SQL传递给executeQuery.
更改:
try(ResultSet rs = stmt.executeQuery(sql)){
Run Code Online (Sandbox Code Playgroud)
至:
try(ResultSet rs = stmt.executeQuery()){
Run Code Online (Sandbox Code Playgroud)
这超越了preparedStatement.
抱怨的是用'?'执行查询 因为它不是准备好的查询.