日期:2014-05-17  浏览次数:20789 次

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=