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即可