【发布时间】:2016-03-05 05:21:50
【问题描述】:
我正在尝试将 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 不要使用不受支持的语句?
【问题讨论】:
-
String[]用于自动生成的密钥。您需要返回自动生成的键值吗? -
不,我不知道。我在代码中所做的只是
m = new Model();,填充它,然后m.saveIt();,模型中没有自动生成的列。 ActiveJDBC 内部调用prepareStatement方法here -
您使用的是什么数据库/驱动程序?
-
我正在使用 OpenEdge RDBMS 及其专有驱动程序
com.ddtek.jdbc.openedge.OpenEdgeDriver,这是我必须与之交互的遗留数据库。
标签: java activejdbc