iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis查询text类型字段时返回Nclob,导致json格式化时报错
  • 366
分享到

mybatis查询text类型字段时返回Nclob,导致json格式化时报错

mybatisjson 2023-10-11 22:10:18 366人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

package cn.yuanqiao.arcHive.common.typeHandler;import com.alibaba.druid.proxy.jdbc.NClobProxyImpl;im

package cn.yuanqiao.arcHive.common.typeHandler;import com.alibaba.druid.proxy.jdbc.NClobProxyImpl;import org.apache.ibatis.type.*;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;import java.io.BufferedReader;import java.io.IOException;import java.io.Reader;import java.io.StringReader;import java.sql.*;@MappedTypes(Clob.class)@MappedJdbcTypes(JdbcType.CLOB)@Componentpublic class NClobTypeHandler extends BaseTypeHandler<String> {    @Value("${YQ_DATABASE}")    private Integer databaseId;    @Override    public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException {        StringReader reader=new StringReader(parameter);        ps.setCharacterStream(i,reader,parameter.length());    }    @Override    public String getNullableResult(ResultSet rs, String columnName) throws SQLException {        String clobToString="";        try {            switch (databaseId) {                case 4://达梦数据库                    NClobProxyImpl aa=(NClobProxyImpl) rs.getObject(columnName);                    Clob rawClob = aa.getRawClob();                    clobToString = ClobToString(rawClob);                    break;                default:                    clobToString="长文本类型,无法显示";                    break;            }        } catch (SQLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return clobToString;    }    @Override    public String getNullableResult(ResultSet rs, int i) throws SQLException {        String clobToString="";        try {            switch (databaseId) {                case 4:                    NClobProxyImpl aa=(NClobProxyImpl) rs.getObject(i);                    Clob rawClob = aa.getRawClob();                    clobToString = ClobToString(rawClob);                    break;                default:                    clobToString="长文本类型,无法显示";                    break;            }        } catch (SQLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return clobToString;    }    @Override    public String getNullableResult(CallableStatement callableStatement, int i) throws SQLException {        String clobToString="";        try {            switch (databaseId) {                case 4:                    NClobProxyImpl aa=(NClobProxyImpl) callableStatement.getObject(i);                    Clob rawClob = aa.getRawClob();                    clobToString = ClobToString(rawClob);                    break;                default:                    clobToString="长文本类型,无法显示";                    break;            }        } catch (SQLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return clobToString;    }    private String ClobToString(Clob clob) throws SQLException, IOException {        String reString = "";        Reader is = clob.getCharacterStream();// 得到流        BufferedReader br = new BufferedReader(is);        String s = br.readLine();        StringBuffer sb = new StringBuffer();        while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING            sb.append(s);            s = br.readLine();        }        reString = sb.toString();        return reString;    }}

来源地址:https://blog.csdn.net/weixin_43484846/article/details/133776124

--结束END--

本文标题: mybatis查询text类型字段时返回Nclob,导致json格式化时报错

本文链接: https://www.lsjlt.com/news/428810.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作