我试图将ActiveJDBC与其驱动程序不支持Connection.prepareStatement(String, String[])方法的DB一起使用。在尝试插入时,我会得到以下异常:
org.javalite.activejdbc.DBException: java.sql.SQLFeatureNotSupportedException: [DataDirect][OpenEdge JDBC Driver]Unsupported method: Connection.prepareStatement(String, String[]), query: INSERT INTO ...
at com.ddtek.jdbc.openedgebase.ddb9.b(Unknown Source)
at com.ddtek.jdbc.openedgebase.ddb9.a(Unknown Source)
at com.ddtek.jdbc.openedgebase.ddb8.b(Unknown Source)
at com.ddtek.jdbc.openedgebase.ddb8.a(Unknown Source)
at com.ddtek.jdbc.openedgebase.BaseConnection.prepareStatement(Unknown Source)
at org.javalite.activejdbc.DB.execInsert(DB.java:597)
at org.javalite.activejdbc.Model.insert(Model.java:2618)
at org.javalite.activejdbc.Model.save(Model.java:2552)
at org.javalite.activejdbc.Model.saveIt(Model.java:2477)
...支持其他一些形式的prepareStatement,例如prepareStatement (String)、prepareStatement (String, int)等。
我能做些什么来说服ActiveJDBC不要使用不受支持的语句吗?
发布于 2015-12-01 10:28:46
正如您在来源中所看到的,这几乎是硬编码的。因此,从我的头脑中看,您可以请求更改ActiveJDBC,或者继续将“有缺陷”的连接封装到自定义实现中,然后重写此prepareStatement(String, String[])。
public PreparedStatement prepareStatement(String qry, String[] autoIdColumns) {
return delegate.prepareStatement(qry);
}谷歌还对ConnectionWrapper的实现提出了一些想法。
发布于 2015-12-01 17:42:00
请看ActiveJDBC:http://javalite.io/activejdbc#supported-databases支持的数据库。每一个都要经过彻底的测试。
https://stackoverflow.com/questions/34017824
复制相似问题