当前位置:   article > 正文

clob类型读取并转换成字符串(oracle、达梦等)_clob转字符串

clob转字符串

通过 JDBC 查询 CLOB 数据时,可能会遇到返回的对象不是直接的字符串,而是像 dm.jdbc.driver.DmdbNClob 、oracle.sql.CLOB这样的类实例。

在mybatis中直接查询得到的是类实例:

在mybatis中将 CLOB 数据转换为字符串

结果对比:

转换前:

转换后:

工具类转换方法代码:

  1. public static void transferListMap(List<Map<String, Object>> list) {
  2. try {
  3. if(ObjectKit.isEmpty(list)){
  4. return;
  5. }
  6. for(Map<String,Object> map : list){
  7. transferMap(map);
  8. }
  9. } catch (Exception e) {
  10. throw new ImpException(ImpError.APP_ERR_20_00_01, e);
  11. // return null;
  12. }
  13. }
  1. public static void transferMap(Map<String, Object> map) {
  2. try {
  3. if (ObjectKit.isEmpty(map)) {
  4. }
  5. for (Map.Entry<String, Object> entry : map.entrySet()) {
  6. Object value = entry.getValue();
  7. String key = entry.getKey();
  8. String val = String.valueOf(value);
  9. if (null != value && !"null".equalsIgnoreCase(val) && !"undefined".equals(val)
  10. && (val.contains(IMP_ENUMS.Nclob.ORACLE_NCLOB.getVal() ) || val.contains(IMP_ENUMS.Nclob.ORACLE_CLOB.getVal())
  11. || val.toUpperCase().contains(IMP_ENUMS.Nclob.CLOB.getVal()))) {
  12. Clob columnClob = (Clob) value;
  13. boolean isSql = false;
  14. if(key.toUpperCase().indexOf("SQL") != -1){
  15. isSql = true;
  16. }
  17. map.put(entry.getKey(), clob2String(columnClob,isSql));
  18. }
  19. }
  20. } catch (Exception e) {
  21. throw new ImpException(ImpError.APP_ERR_20_00_01, e);
  22. // return null;
  23. }
  24. }
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
  1. public static String clob2String(Clob clob,boolean isSql) throws SQLException, IOException {
  2. String ret = "";
  3. Reader read = null;
  4. BufferedReader br = null;
  5. try{
  6. read = clob.getCharacterStream();
  7. br = new BufferedReader(read);
  8. String s = br.readLine();
  9. StringBuffer sb = new StringBuffer();
  10. while (s != null) {
  11. sb.append(s);
  12. sb.append(System.lineSeparator());
  13. s = br.readLine();
  14. }
  15. ret = sb.toString();
  16. }finally {
  17. if (br != null) {
  18. br.close();
  19. }
  20. if (read != null) {
  21. read.close();
  22. }
  23. }
  24. return ret;
  25. }

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号