我尝试将ActiveJDBC用于其驱动程序不支持Connection.prepareStatement(String, String[])
方法的数据库。我在尝试插入时遇到以下异常:
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不要使用不支持的声明吗?
答案 0 :(得分:0)
正如您在source中所看到的,这几乎是硬编码的。因此,从我的头脑中你可以要求改变ActiveJDBC或继续包装你的"有缺陷的"连接到自定义实现并覆盖此prepareStatement(String, String[])
public PreparedStatement prepareStatement(String qry, String[] autoIdColumns) {
return delegate.prepareStatement(qry);
}
Google为ConnectionWrapper实施提供了一些想法。
答案 1 :(得分:0)
请查看ActiveJDBC支持的数据库:http://javalite.io/activejdbc#supported-databases。每一个都经过全面测试。