我连接的是oracle数据库。我需要从表中获取信息到我的服务类,然后将其发送到控制器。 变量之一是 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 */ ));
Clob clob = rs.getClob(13);
String json = clob.getSubString(1, (int) clob.length());
现在您可以使用 GSON 库将其转换为对象