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

04-30 22:41