我正在尝试在我的 Java 程序中从 Oracle 10g 读取数据,其中一列是 CLOB 类型,如下所示(注意:数据是 CLOB 类型的列):
private final static String LOAD_QUERY
= "SELECT id, data FROM table WHERE id = ?";
public SomeObject loadById(long id){
SomeObject obj = null;
try {
obj = jdbcTemplate.queryForObject(LOAD_QUERY,
new ParameterizedRowMapper<SomeObject>() {
public Model mapRow(ResultSet rs, int rowNum) throws SQLException {
long id = rs.getLong("id");
String data = rs.getString("data");
return new SomeObject(id, data);
}
}, id);
} catch (Exception e) {
throw new SomeException("Error during SQL query", ErrorCode.INTERNAL_ERROR, e);
}
return obj;
}
存储在 CLOB 中的数据大小高达 44Mb。我能够成功检索 CLOB 值,但它对 cpu 使用率造成了很大影响。使用 Java VisualVM 运行分析器后,似乎是 IO 问题。我应该如何解决这个问题?提前致谢!