【问题标题】:How do I properly pass an XML doc to SQLServer via a Spring JDBC Template?如何通过 Spring JDBCTemplate 正确地将 XML 文档传递给 SQL Server?
【发布时间】:2014-02-13 22:48:50
【问题描述】:

我在尝试使用 XML 作为参数之一进行 SQL 插入时遇到问题。

我的平台: 爪哇 7 赢 7 JTDS JDBC 驱动程序 SQL 服务器 Spring JDBC 4.0

我试过这个(来自 Spring 文档中的一个例子):

Jdbc4SqlXmlHandler handler = new Jdbc4SqlXmlHandler();
SqlXmlValue value = handler.newSqlXmlValue(doc_);                           
return _jdbcTemplate.update(createSQL, new Object[] {userID_, value});

doc_ 是传递给方法的 org.w3c.dom.Document

createSQL 是:

private final static String createSQL = "insert into " + TABLE_NAME + " (USER_ID, DOC) values (?, ?) ";

当 AbstractJdbc4SqlXmlValue.cleanup()(在 Jdbc4SqlXmlHandler 中)在 xmlObject var 上调用 free 时,我得到一个空指针异常:

public void cleanup() {
  try {
this.xmlObject.free();
  }
  catch (SQLException ex) {
    throw new DataAccessResourceFailureException("Could not free SQLXML object", ex);
  }
}

xmlObject 为空,但在 Jdbc4SqlXmlHandler 中有对文档的引用

我做错了什么,但我没有看到。

谢谢。

【问题讨论】:

    标签: java sql-server spring jdbc


    【解决方案1】:

    回答:你不知道。

    JTDS 是 JDBC 3 驱动程序,不支持 SQLXML 值。

    SQLXML 值仅在 JDBC 4 中受支持。

    因此我必须使用 MS JDBC 驱动程序。

    【讨论】:

      猜你喜欢
      • 2012-08-13
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      • 1970-01-01
      • 2021-04-28
      • 2012-04-25
      • 2016-11-06
      相关资源
      最近更新 更多