当前位置:   article > 正文

Clob 字段转String_clob类型转换为string

clob类型转换为string

问题:

  在项目上,有大文本文档,需要存入clob 字段,如何取出clob 字段来? 应用的Mybatis框架

 

解决思路:

 第一: 若是能保证数据量小于4000的话, to_char(clob字段)  是一个非常简单省事的方案;

 第二:若是字段长度不能固定,肯定有大于4000 的数据量,这个时候,可以写一个实体类,

            然后 string 字段,然后get set操作;默认生成就可以;【也可以解决问题】;

第三: 就是需要写一个类,专门去做clob 转字符串处理;【这里着重讲解这个】

 

 

解决方案:

首先写这个类

  1. public class OracleClob2String {
  2. public static String ClobToString(Clob clob) throws SQLException, IOException {
  3. String reString = "";
  4. Reader is = clob.getCharacterStream();// 得到流
  5. BufferedReader br = new BufferedReader(is);
  6. String s = br.readLine();
  7. StringBuffer sb = new StringBuffer();
  8. while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING
  9. sb.append(s + "\n");
  10. s = br.readLine();
  11. }
  12. reString = sb.toString();
  13. return reString;
  14. }
  15. }

第二:在service层对获取的list<map<string,object>> 进行clob 转 string 

  需要注意的是:list<map<string,object>> 这里必须事object 接收信息,不能是string,

  1. public List<Map<String, Object>> getTzgglist(Map<String, String> map) {
  2. List<Map<String, Object>> list = Dao.getTzggList(map);
  3. for (Map<String, Object> tz : list) {
  4. try {
  5. tz.put("ggnr",OracleClob2String.ClobToString((Clob)tz.get("ggnr")));
  6. } catch (SQLException e) {
  7. // TODO 自动生成的 catch 块
  8. e.printStackTrace();
  9. } catch (IOException e) {
  10. // TODO 自动生成的 catch 块
  11. e.printStackTrace();
  12. }
  13. }
  14. return list;
  15. }

完成任务收工~!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/823129
推荐阅读
相关标签
  

闽ICP备14008679号