mybatis没有clob类型_mybatis将Oracle的Clob类型转成String的方法
默认情况下,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的方法相关推荐
- clob在java里的类型_Java对Oracle中Clob类型数据的读取和写入(转)
Java对Oracle中Clob数据类型是不能够直接插入的,但是可以通过流的形式对clob类型数据写入或者读取,网上代码并不算特别多,讲的也不是很清楚,我对网上资料进行了整理和总结,具体看代码: 写入 ...
- oracle的clob赋值_JAVA处理Oracle数据库CLOB读写操作
Oracle中大字段的存储使用CLOB类型,但是该类型却不能像其他类型一样直接在POJO中读写.针对这个问题,网上有各种不同的方法,但是有些却太过复杂,有些又言语不清,看不明白,所以我在此讲述一下其中 ...
- mysql clob转string_Java获取Oracle中CLOB字段转换成String
Java获取Oracle中CLOB字段转换成String : try {PreparedStatement stmt = session.connection().prepareStatement(s ...
- java Clob转CLOB_Java获取Oracle中CLOB字段转换成String
Java获取Oracle中CLOB字段转换成String : try {PreparedStatement stmt = session.connection().prepareStatement(s ...
- oracle 图片 显示不出,Sql Server 中image类型迁移到Oracle 中Blob类型出现图片显示不出来,why????请博客们帮忙 | 学步园...
我现在在一项目中碰到这么一个问题 Sql Server 中image类型迁移到Oracle Blob类型出现图片显示不出来,我在Sql Server 中看了一条image数据 如下: 1.Sql Se ...
- oracle 日期类型是什么,oracle date日期类型 精析
一.date 1.date.sysdate格式说明 展示 date类型,展示格式既可以为:YYYY/MM/DD,也可以为YYYY/MM/DD HH24:MI:SS: 其存储格式只有一种:YYYY/MM ...
- UE4中Enum类型元素如何在蓝图中直接转成string
如果枚举中的元素名包含两个大写,那么UE4默认会把两个大写视为两个单词,之间会加入一个空格.如果直接转成string,得到的也是包含空格的string. 如何得到不含空格的元素名? 答案:先转FNam ...
- ORACLE中CLOB介绍及使用
一.Oracle中的varchar2类型 我们在Oracle数据库存储的字符数据一般是用VARCHAR2.VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Data ...
- Oracle -jdbc-java 的类型映射
http://blog.csdn.net/a9529lty/article/details/6023331 Oracle 8i 的类型映射 下表列出了用于 Oracle 8i 数据库的数据库类型和 J ...
最新文章
- 【解题报告】【HDOJ1233】【最小生成树】还是畅通工程
- IsNull和IsEmpty的区别
- python 进度条程序_Python:显示程序运行进度条
- Qt实现UDP通信简例
- 【一周入门MySQL—3】多表查询、子查询、常用函数
- 【Linux】一步一步学Linux——dpkg-divert命令(273)
- 陕西科技大学18计算机调剂,2018年陕西科技大学考研调剂信息公布
- 移动互联网App兼容性测试
- DWR自学笔记(1)HelloWorld
- Centos7安装、卸载、使用Docker
- 4599 的 iPhone 11,拼多多如何从「真香」到「更香」
- scala学习笔记一------初步了解scala
- html选择日期的组件,怎样实现一个datePicker(日期选择)组件
- Android音频播放器
- 青少年重度抑郁的动态功能连接:与严重程度和症状维度的关系
- VA虚拟平台十大亮点
- 无线短距离通信-蓝牙与wifi(一)
- MSSQL分离数据库和附加数据库
- java基础实战项目一:实现家庭记账本的简易记账功能
- 3GPP TS 23501-g51 中英文对照 | 4.3.4 Interworking between ePDG connected to EPC and 5GS
热门文章
- 通过webbrowser控件获取验证码
- Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
- 又一编辑神器-百度编辑器-Ueditor
- sql server 2008学习1–系统数据库
- 右键删除选中的行总提示rowIndex
- linux安装篇之mongodb安装及服务自启动配置
- 数据结构与算法(C语言) | 栈和队列——栈(自己做过测试)
- 快速排序最好,最坏,平均复杂度分析
- 反思技术面试题目准备汇总链接汇总
- mysql行转列sql函数_sql动态行转列的两种方法