感觉还有很大的改进空间,后续补上吧
public class ClobToObjectUtils {
/**
* Clob、nclob类型转Object
* map:需转换的值
* wordKey:需转换的key
* @param map 转换后对象的map集合
*/
public static Map<String, Object> setClobToObject(Map<String, Object> map, List<String> wordKey) {
if (map != null) {
for (String key : wordKey) {
Clob clobData = (Clob) map.get(key);
String tempStr = CommonUtils.convertClobToString(clobData);
String value = "";
try {
byte[] bytes = tempStr.getBytes("utf-8");
value = new String(bytes);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
map.put(key, value);
}
}
return map;
}
/**
* Clob、nclob类型转Object
* @param map 转换后对象的map集合
*/
public static Map<String, Object> setClobToObjectForMap(Map<String, Object> map) {
if (map != null) {
Object valueClass = null;
for (Map.Entry<String, Object> arg : map.entrySet()) {
valueClass = arg.getValue();
if (valueClass instanceof Clob) {
String key = arg.getKey();
Clob clobData = (Clob) map.get(key);
String tempStr = CommonUtils.convertClobToString(clobData);
String value = "";
try {
byte[] bytes = tempStr.getBytes("utf-8");
value = new String(bytes);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
map.put(key, value);
}
}
}
return map;
}
/**
* Clob、nclob类型转Object
* @param list 转换后对象的list集合
*/
public static List<Map<String, Object>> setClobToObjectForList(List<Map<String, Object>> list) {
if(list.size() > 0){
for (Map<String, Object> map: list){
if (map != null) {
Object valueClass = null;
for (Map.Entry<String, Object> arg : map.entrySet()) {
valueClass = arg.getValue();
if (valueClass instanceof Clob) {
String key = arg.getKey();
Clob clobData = (Clob) map.get(key);
String tempStr = CommonUtils.convertClobToString(clobData);
String value = "";
try {
byte[] bytes = tempStr.getBytes("utf-8");
value = new String(bytes);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
map.put(key, value);
}
}
}
}
}
return list;
}
/**
* 将Clob类型数据转换成String
*
* @param clobData Clob数据
* @return String
*/
public static String convertClobToString(Clob clobData) {
String resultStr = "";
Reader inStream = null;
try {
if (clobData != null) {
inStream = clobData.getCharacterStream();
char[] charArray = new char[(int) clobData.length()];
inStream.read(charArray);
resultStr = new String(charArray);
}
} catch (Exception e) {
log.error("将Clob类型数据转换成String失败", e);
}
return resultStr;
}
}