我正在尝试使用以下代码从包含DECIMAL(13,4)的SQL表中接收一个大十进制:
userStmt = userConn.createStatement();
userRsst = userStmt.executeQuery("SELECT * FROM WITHDRAWALS WHERE date BETWEEN "
+ "'" + limits[0] + "' " + "AND " + "'" + limits[1] + "'");
try{
while(userRsst.next()){
if(Double.parseDouble(userRsst.getString("amount")) != 0){
temp = userRsst.getBigDecimal("amount");
}else{
temp = new BigDecimal("0.0");
}
}
}catch (Exception e) {
e.printStackTrace();
return(null);
}
finally{
this.userDisconnect();
}
}catch (SQLException e) {
System.out.println("Could not retrieve withdrawal data 2");
return null;
}
return wdb;
}
但是我收到以下错误:
java.sql.SQLException: not implemented by SQLite JDBC driver
at org.sqlite.Unused.unused(Unused.java:29)
at org.sqlite.Unused.getBigDecimal(Unused.java:88)
at dat.handle.DBconnection.getWithdrawals(DBconnection.java:233)
at GUI.MainWindow.updateWithdrawalTree(MainWindow.java:372)
at GUI.MainWindow.open(MainWindow.java:217)
有谁可以指出我做错了什么?
谢谢
纳斯
答案 0 :(得分:0)
我认为我暂时找到了一个解决方法,使用get string并重新编写这样的变量:
temp = new BigDecimal(userRsst.getString("amount"));
仍然很高兴理解为什么“getBigDecimal”函数会抛出SQLException。
答案 1 :(得分:0)
尝试使用David Crawshaw提供的SQLite JDBC驱动程序的分支
https://github.com/gwenn/sqlitejdbc
添加:
此致 佩德罗索萨
答案 2 :(得分:0)
setBigDecimal()也不适用于我。替换为String,它将起作用。