【问题标题】:Get Clob Java Spring with SqlRowSet使用 SqlRowSet 获取 Clob Java Spring
【发布时间】:2016-01-18 07:27:55
【问题描述】:

我正在尝试从 Java Spring 项目中的 Oracle 数据库中检索 Clob 字段,但遇到了问题。

首先,我使用名为 SqlRowSet 的 Spring 对象进行了查询:

String query = sqlQueries.getProperty("THE_QUERY");
        SqlRowSet rs = select.queryForRowSet(query, new HashMap<String, Object>());

之后我遍历对象并开始从字段中获取信息:

        while (rs.next()) {
            String name = rs.getString("name");
        }

当我得到查询结果时,我会得到这样的结果:

name=javax.sql.rowset.serial.SerialClob@435dc43

我尝试了几件事,但我无法从字段中获取信息,该字段最后是一个字符串(不确定数据库创建者为什么使用 clob 作为数据类型)。

有人知道如何获取这些信息吗?

【问题讨论】:

    标签: java spring clob


    【解决方案1】:

    这是我从 hibernate 库中使用的一个衬垫。

    ClobType.INSTANCE.toString((Clob) tuple[2])
    // org.hibernate.type.ClobType
    

    【讨论】:

      【解决方案2】:

      我找到了结合两个stackoverflow问题的答案:

      Spring SqlRowSet getting Clob as String using JdbcTemplate

      Most efficient solution for reading CLOB to String, and String to CLOB in Java?

      首先,您需要创建一个 Clob 对象,然后使用一种方法从 Clob 对象中提取字符串。我的代码如下所示,并且可以正常工作:

                  Clob clobObject = (Clob)rs.getObject("name");                                       
                  final StringBuilder sb = new StringBuilder();
                  try
                      {
                          final Reader reader = clobObject.getCharacterStream();
                          final BufferedReader br = new BufferedReader(reader);
                          int b;
                          while(-1 != (b = br.read()))
                          {
                              sb.append((char)b);
                          }
                          br.close();
                          String theName = sb.toString();
                  catch (Exception ex)
                  {
      
                  }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多