首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

oracle 数据库中定义了clob部类字段。

2013-03-17 
oracle 数据库中定义了clob类型字段。。。oracle中的clob类型字段,用的是jdbc 。我在实体类中可以定义为String

oracle 数据库中定义了clob类型字段。。。
oracle中的clob类型字段,用的是jdbc 。  我在实体类中可以定义为String类型吗?

我的方法都是封装好的,我作为string类型,插入没问题,但是查询就有问题,可能是我插入的字符少吧。
以前没用过这类型,请高手指教。我该怎么定义,和操作。
网上的东西有点乱,看的有点懵
[解决办法]
可以定义成string类型,但是在查询结果的时候,需要特殊处理这个字段,以mybatis为例,此字段需要使用ClobTypeHandler处理才能正确显示。
你使用了什么持久化方案
[解决办法]
试试

public String ClobToString(Clob clob) {
        String reString = "";
        Reader is = null;
        try {
            is = clob.getCharacterStream();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // 得到流
        BufferedReader br = new BufferedReader(is);
        String s = null;
        try {
            s = br.readLine();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        StringBuffer sb = new StringBuffer();
        while (s != null) {
            //执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING
            sb.append(s);
            try {
                s = br.readLine();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        reString = sb.toString();
        return reString;
    }

[解决办法]
将clob, blob理解为byte[]
循环取的时候:
byte[] temp_bytes= rs.getBytes("字段名");

----------------转换
String contentString="";
try {
if(bytes!=null && !bytes.equals("")){
contentString = new String(bytes, "gb2312");


}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return contentString;


[解决办法]
引用:
我在java中对应的字段直接定义为String类型,  然后直接保存和执行String类型的一样,可以吗


那倒是不大清楚 我以前弄的时候是以流的形式写入/输出  在写入之前将String类型字符串转为Blob流写入  输出的时候以流的形式读取 然后转换为String字符串输出

热点排行