首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有准备语句的ActiveJDBC插入

没有准备语句的ActiveJDBC插入
EN

Stack Overflow用户
提问于 2015-12-01 10:15:55
回答 2查看 366关注 0票数 2

我试图将ActiveJDBC与其驱动程序不支持Connection.prepareStatement(String, String[])方法的DB一起使用。在尝试插入时,我会得到以下异常:

代码语言:javascript
复制
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不要使用不受支持的语句吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-01 10:28:46

正如您在来源中所看到的,这几乎是硬编码的。因此,从我的头脑中看,您可以请求更改ActiveJDBC,或者继续将“有缺陷”的连接封装到自定义实现中,然后重写此prepareStatement(String, String[])

代码语言:javascript
复制
public PreparedStatement prepareStatement(String qry, String[] autoIdColumns) {
  return delegate.prepareStatement(qry);
}

谷歌还对ConnectionWrapper的实现提出了一些想法。

票数 0
EN

Stack Overflow用户

发布于 2015-12-01 17:42:00

请看ActiveJDBC:http://javalite.io/activejdbc#supported-databases支持的数据库。每一个都要经过彻底的测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34017824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档