1、Mybatis返回值用map接受,对应的value类型就是个clob类型,可以确保不会丢失长度,自带的sql执行器转varchar2的话可能会长度丢失。
2、将map放入工具类(clob类型转String)
package com.ly.cloud.common.utils;
import java.sql.Clob;
import java.util.Map;
/**
* @author QiJingJing
* @since 2023/9/6
*/
public class ClobToStringUtil {
/**
* 将Map(key,value)中value值类型为Clob的转换为字符串传到前端的工具方法。
*
* @param map map
* @return java.util.Map<java.lang.String, java.lang.Object>
* @author qijingjing
* @since 2023/9/6
**/
public static Map<String, Object> clobToStringByMap(Map<String, Object> map) {
if (map == null) {
return null;
}
for (Map.Entry<String, Object> entry : map.entrySet()) {
Object t1 = entry.getValue();
if (t1 instanceof Clob) {//将所有Clob类型的字段都转换为String类型
entry.setValue(clobToString((Clob) t1));
}
}
return map;
}
public static String clobToString(Clob clob) {
String result = "";
try {
if (clob != null) {
result = clob.getSubString(1, (int) clob.length());
}
} catch (Exception e) {
//
}
return result;
}
}
3、这个时候数据就是用String接收的数据了。当然需要vo的形式,将map转为bean即可