欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java中Clob类型转换成String类型的问题

程序员文章站 2022-06-18 19:57:39
...

1.问题:

项目中使用druid+达梦数据库(基本类似Oracle),查出的Clob类型数据在运行时为ClobProxyImpl对象而不是内容,不能转为字符串

2.原代码:

map为达梦数据库或Oracle中查询结果,str为键值

Object value = map.get(str);

3.错误原因:

类型转换问题

4.解决

使用ClobProxyImpl及其方法进行转换,下标从1开始,到其长度

public String getSubString(long pos, int length) throws SQLException {
    return createChain().clob_getSubString(this, pos, length);
}
public long length() throws SQLException {
    return createChain().clob_length(this);
}

5.新代码:

Object value = map.get(str);
if(value instanceof ClobProxyImpl){
	try {
	    value =  ((ClobProxyImpl) value).getSubString(1,(int)((ClobProxyImpl) value).length());
    } catch (SQLException e) {
        e.printStackTrace();
    }
}