欢迎进入广州凡科互联网科技有限公司网站
全国服务热线
4000-399-000
mybatis将Oracle的Clob种类转成String的方式
时间: 2020-11-20 07:56 浏览次数:
默认设置状况下,mybatis将oracle的Clob种类查寻出去,結果是oracle.sql.。下边是将CLOB种类变换成String的方式最先,加上一个变换的类,完成TypeHandler的插口package xxx.xxx;import java.io.IOExceptio

默认设置状况下,mybatis将oracle的Clob种类查寻出去,結果是oracle.sql.。

下边是将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;
 
 
.apache.ibatis.type.JdbcType;
.apache.ibatis.type.TypeHandler;
public class OracleClobTypeHandlerCallback implements TypeHandler Object  {
 
 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

 configuration 
  typeHandlers 
  typeHandler javaType= java.lang.String  jdbcType= CLOB  handler= xxx.xxx.OracleClobTypeHandlerCallback  / 
  /typeHandlers 
 /configuration 

那样,在碰到Clob种类的情况下,就可以变换成String了。

此外,假如mapper中回到种类设定的是HashMap,那麼,就必须回到为List Map String,Object

随后,解析xml这一结合,将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;
}



2016 嘿!编码 copy right  
嘿!编码-测算机程序编写新手入门网站,关心手机软件开发设计全新技术性,收集企业网站建设受欢迎資源。
手机软件开发设计全集,企业网站建设手册,程序猿必上的程序编写新手入门网站。 


Copyright © 广州凡科互联网科技有限公司 版权所有 粤ICP备10235580号
全国服务电话:4000-399-000   传真:021-45545458
公司地址:广州市海珠区工业大道北67号凤凰创意园