oracle数据库CLOB类型怎么转换为String

oracle数据库中的字段类型是CLOB,而JavaBean中定义的字段是String,在java中往外读取数据的时候,打印的数据时类似于内存地址值一样的字符串,请问怎么... oracle数据库中的字段类型是CLOB,而JavaBean中定义的字段是String,在java中往外读取数据的时候,打印的数据时类似于内存地址值一样的字符串,请问怎么转换啊? 展开
 我来答
匿名用户
推荐于2017-11-24
展开全部
给你段参考代码,读取clob数据

import java.io.InputStream;
import java.io.Reader;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class TestClobOut {
public static void main(String args[]){
String data;
Reader inStream=null;
//获得数据库连接
Connection con = ConnectionFactory.getConnection();//ConnectionFactory类是另外定义的,不必纠结
con.setAutoCommit(false);
Statement st = con.createStatement();
//不需要“for update”
ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1");
if (rs.next())
{
java.sql.Clob clob = rs.getClob("CLOBATTR");
inStream = clob.getCharacterStream();
char[] c = new char[(int) clob.length()];
inStream.read(c);
//data是读出并需要返回的数据,类型是String
data = new String(c);
inStream.close();
}
inStream.close();
con.commit();
con.close();
}
}
馅喽喽喽
高粉答主

2018-03-31 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:266
采纳率:100%
帮助的人:4.5万
展开全部
  1. 给你段参考代码,读取clob数据

    import java.io.InputStream;
    import java.io.Reader;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    public class TestClobOut {
    public static void main(String args[]){
    String data;
    Reader inStream=null;
    //获得数据库连接

  2. Connection con = ConnectionFactory.getConnection();//ConnectionFactory类是另外定义的,不必纠结
    con.setAutoCommit(false);
    Statement st = con.createStatement();
    //不需要“for update”
    ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1");
    if (rs.next())
    {clob 转换 String (传入 clob 类型的 obj 对象)
    public static String getClob2String(Object obj) {
    String str = "";
    try {
    CLOB clob = (CLOB) obj;
    if (clob == null || clob.length() == 0) {
    str = "";
    } else {
    long clen = clob.length();
    char clobArray[] = new char[(int) clen];
    int readednum = clob.getChars(1, (int) clen, clobArray);
    StringBuffer sb = new StringBuffer();
    sb.append(clobArray);
    str = sb.toString();
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return str;
    }
    java.sql.Clob clob = rs.getClob("CLOBATTR");
    inStream = clob.getCharacterStream();
    char[] c = new char[(int) clob.length()];
    inStream.read(c);
    //data是读出并需要返回的数据,类型是String
    data = new String(c);
    inStream.close();
    }
    inStream.close();
    con.commit();
    con.close();
    }
    }

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式