我连接了oracle数据库。我需要从表中获取信息到我的服务类,然后将其发送到 Controller 。 变量之一是 CLOB 数据类型。如何获取它并解析为字符串列表? 这是我的伪代码:
public class ModelClass {
private List<String> comments;
public ModelClass(List<String> comments) {
this.comments = comments;
}
public List<String> getComments() {
return comments;
}
}
然后我尝试对 ResultSet 执行查询并将其放入 ModelClass ResultSet rS = dataSource.getConnection().createStatement().executeQuery(query.toString());
while (rS.next()) {
result.add(new ModelClass((List<String>) rS.getObject(13)));
列表中
显然这是行不通的。我不知道如何获得那个 Clob。当我尝试获取结果时,出现以下错误:"oracle.sql.CLOB cannot be cast to java.util.List",
当我将 rS.Object(13) 更改为 rS.getClob(13) 时,它不起作用。你能告诉我如何获取那个 Clob 对象吗?实际上是一个有 4 个字段的 JSON。
最佳答案
通过 rS.getObject(13) 得到的 CLOB 对象是一个类似字符串的对象。如果您想将其视为 4 个字段的列表,您应该使用任何库(如 GSON)将其转换为 JSON 对象,然后向 JSON 对象询问其字段。
while (rS.next()) {
CLOB clobOjb = (CLOB) rS.getObject(13);
// convert clobObj (or it's string conversion) to JSON
// extract the fields from JSON object and store them in a list
result.add(new ModelClass( /* the list */ ));
关于java - 如何在java中从oracle获取Clob数据类型到ResultSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50075592/