JAVA 读取Oracle-clob类型

前段时间项目用到APP端访问后台需读取Oracle-clob类型字段,由于直接查询出clob类型读取不了,后来找了很多资料,终于完成了!现在记录一下!
不多说了 直接上代码:

//转换clob类型
    public String ClobToString(Clob clob) throws SQLException, IOException {  
        String reString = "";  
        Reader is = clob.getCharacterStream();// 得到流  
        BufferedReader br = new BufferedReader(is);  
        String s = br.readLine();  
        StringBuffer sb = new StringBuffer();  
        while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING  
            sb.append(s);  
            s = br.readLine();  
        }  
        reString = sb.toString();  
        if(br!=null){  
            br.close();  
        }  
        if(is!=null){  
            is.close();  
        }  
        return reString;  
       } 

实现:

List<Map<String, String>> news_list = GetNewslist(map);
            for(int i=0;i<news_list.size();i++)
            {
                Map<String, String> maps = news_list.get(i);
                Object content = maps.get("news_content");
                if(content!=null&&!content.equals("")){
                    String contents = ClobToString((Clob)content);//转换clob类型 
                    contents=contents.replaceAll("</?[^/?(br)|(p)][^><]*>","");//保留br标签和p标签 
                    String content1 = trimStyle(contents);//去除style标签
                    String content2 = trimClass(content1);//去除class标签
                    maps.put("news_content", content2);
                }
            }

另有去除标签方法,一并放上:

//去除style标签
    public static String trimStyle(String content) {
            String regEx = " style=\"(.*?)\"";
            Pattern p = Pattern.compile(regEx);
            Matcher m = p.matcher(content);
            String okContent = "";
            if (m.find()) {
                okContent = m.replaceAll("");
                return okContent;
            }
            return content;
    } 
    //去除class标签
    public static String trimClass(String content) {
        String regEx = " class=\"(.*?)\"";
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(content);
        String okContent = "";
        if (m.find()) {
            okContent = m.replaceAll("");
            return okContent;
        }
        return content;
    } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值