【问题标题】:Spring SqlRowSet getting Clob as String using JdbcTemplateSpring SqlRowSet 使用 JdbcTemplate 将 Clob 作为字符串
【发布时间】:2015-04-15 15:54:19
【问题描述】:

我在数据库中有一个 CLOB 类型的 QUERY 列。

我在我的程序中阅读它:

SqlRowSet myRowSet = this.jdbcTemplate.queryForRowSet(this.sqlQuery);

while(myRowSet.next()){
   String currentClobString = myRowSet.getString("QUERY")
   System.out.println(currentClobString);
}

但这给出了以下输出:

javax.sql.rowset.serial.SerialClob@7cfe7cfe

我该如何纠正这个问题?

感谢阅读!

【问题讨论】:

    标签: java spring jdbctemplate


    【解决方案1】:

    您可以调用 getObject(String columnLabel) 方法并使用 apache commons 中的 IOutils。此示例代码取自另一个 SO 响应。

        InputStream in = clobObject.getAsciiStream();
        StringWriter w = new StringWriter();
        IOUtils.copy(in, w);
        String clobAsString = w.toString();
    

    【讨论】:

    • 您的意思是在以下行之后: Object clobObject = myRowSet.getObject("QUERY") --- 以上代码 ????
    • 对象 queryClob = snapshotQueriesRowSet.getObject("QUERY"); InputStream in = queryClob.getAsciiStream();错误:对象类型未定义 getAsciiStream..
    • SerialClob 实现了 Clob。你需要类型转换。 Clob clobObject = (Clob)queryClob ;
    猜你喜欢
    • 2016-01-18
    • 2015-05-30
    • 2023-03-27
    • 1970-01-01
    • 2011-01-17
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    相关资源
    最近更新 更多