默认情况下,mybatis将oracle的Clob类型查询出来,结果是oracle.sql.CLOB@13cda7c9这样的。

下面是将CLOB类型转换成String的方法

首先,添加一个转换的类,实现TypeHandler的接口package xxx.xxx;

import java.io.IOException;

import java.io.Reader;

import java.sql.CallableStatement;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import org.apache.ibatis.type.JdbcType;

import org.apache.ibatis.type.TypeHandler;

public class OracleClobTypeHandlerCallback implements TypeHandler {

public Object valueOf(String param) {

return null;

}

@Override

public Object getResult(ResultSet rs, String columnName) throws SQLException {

java.sql.Clob s = rs.getClob(columnName);

if (rs.wasNull()) {

return "";

}

else {

String clobStr = "";

Reader inStream = s.getCharacterStream();

char[] c = new char[(int) s.length()];

try {

inStream.read(c);

clobStr = new String(c);

inStream.close();

}

catch (IOException e) {

e.printStackTrace();

}

return clobStr;

}

}

@Override

public Object getResult(ResultSet arg0, int arg1) throws SQLException {

return null;

}

@Override

public Object getResult(CallableStatement arg0, int arg1) throws SQLException {

return null;

}

@Override

public void setParameter(PreparedStatement arg0, int arg1, Object arg2, JdbcType arg3) throws SQLException {

java.sql.Clob clob = null;

try {

if (arg2 == null) {

arg2 = "";

}

clob = new javax.sql.rowset.serial.SerialClob(arg2.toString().toCharArray());

}

catch (Exception e) {

}

arg0.setClob(arg1, clob);

}

}

然后,在mybatis的config文件中添加typeHandler

这样,在遇到Clob类型的时候,就能转换成String了。

另外,如果mapper中返回类型设置的是HashMap,那么,就需要返回为List>

然后,遍历这个集合,将java.sql.Clob这个类型手动转换为String,转换方式为public static String Clob2String(java.sql.Clob clob) {

String clobStr = "";

try {

Reader inStream = clob.getCharacterStream();

char[] c = new char[(int) clob.length()];

inStream.read(c);

clobStr = new String(c);

inStream.close();

} catch (IOException e) {

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return clobStr;

}

mybatis没有clob类型_mybatis将Oracle的Clob类型转成String的方法相关推荐

  1. clob在java里的类型_Java对Oracle中Clob类型数据的读取和写入(转)

    Java对Oracle中Clob数据类型是不能够直接插入的,但是可以通过流的形式对clob类型数据写入或者读取,网上代码并不算特别多,讲的也不是很清楚,我对网上资料进行了整理和总结,具体看代码: 写入 ...

  2. oracle的clob赋值_JAVA处理Oracle数据库CLOB读写操作

    Oracle中大字段的存储使用CLOB类型,但是该类型却不能像其他类型一样直接在POJO中读写.针对这个问题,网上有各种不同的方法,但是有些却太过复杂,有些又言语不清,看不明白,所以我在此讲述一下其中 ...

  3. mysql clob转string_Java获取Oracle中CLOB字段转换成String

    Java获取Oracle中CLOB字段转换成String : try {PreparedStatement stmt = session.connection().prepareStatement(s ...

  4. java Clob转CLOB_Java获取Oracle中CLOB字段转换成String

    Java获取Oracle中CLOB字段转换成String : try {PreparedStatement stmt = session.connection().prepareStatement(s ...

  5. oracle 图片 显示不出,Sql Server 中image类型迁移到Oracle 中Blob类型出现图片显示不出来,why????请博客们帮忙 | 学步园...

    我现在在一项目中碰到这么一个问题 Sql Server 中image类型迁移到Oracle Blob类型出现图片显示不出来,我在Sql Server 中看了一条image数据 如下: 1.Sql Se ...

  6. oracle 日期类型是什么,oracle date日期类型 精析

    一.date 1.date.sysdate格式说明 展示 date类型,展示格式既可以为:YYYY/MM/DD,也可以为YYYY/MM/DD HH24:MI:SS: 其存储格式只有一种:YYYY/MM ...

  7. UE4中Enum类型元素如何在蓝图中直接转成string

    如果枚举中的元素名包含两个大写,那么UE4默认会把两个大写视为两个单词,之间会加入一个空格.如果直接转成string,得到的也是包含空格的string. 如何得到不含空格的元素名? 答案:先转FNam ...

  8. ORACLE中CLOB介绍及使用

    一.Oracle中的varchar2类型 我们在Oracle数据库存储的字符数据一般是用VARCHAR2.VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Data ...

  9. Oracle -jdbc-java 的类型映射

    http://blog.csdn.net/a9529lty/article/details/6023331 Oracle 8i 的类型映射 下表列出了用于 Oracle 8i 数据库的数据库类型和 J ...

最新文章

  1. 【解题报告】【HDOJ1233】【最小生成树】还是畅通工程
  2. IsNull和IsEmpty的区别
  3. python 进度条程序_Python:显示程序运行进度条
  4. Qt实现UDP通信简例
  5. 【一周入门MySQL—3】多表查询、子查询、常用函数
  6. 【Linux】一步一步学Linux——dpkg-divert命令(273)
  7. 陕西科技大学18计算机调剂,2018年陕西科技大学考研调剂信息公布
  8. 移动互联网App兼容性测试
  9. DWR自学笔记(1)HelloWorld
  10. Centos7安装、卸载、使用Docker
  11. 4599 的 iPhone 11,拼多多如何从「真香」到「更香」
  12. scala学习笔记一------初步了解scala
  13. html选择日期的组件,怎样实现一个datePicker(日期选择)组件
  14. Android音频播放器
  15. 青少年重度抑郁的动态功能连接:与严重程度和症状维度的关系
  16. VA虚拟平台十大亮点
  17. 无线短距离通信-蓝牙与wifi(一)
  18. MSSQL分离数据库和附加数据库
  19. java基础实战项目一:实现家庭记账本的简易记账功能
  20. 3GPP TS 23501-g51 中英文对照 | 4.3.4 Interworking between ePDG connected to EPC and 5GS

热门文章

  1. 通过webbrowser控件获取验证码
  2. Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
  3. 又一编辑神器-百度编辑器-Ueditor
  4. sql server 2008学习1–系统数据库
  5. 右键删除选中的行总提示rowIndex
  6. linux安装篇之mongodb安装及服务自启动配置
  7. 数据结构与算法(C语言) | 栈和队列——栈(自己做过测试)
  8. 快速排序最好,最坏,平均复杂度分析
  9. 反思技术面试题目准备汇总链接汇总
  10. mysql行转列sql函数_sql动态行转列的两种方法