BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器,所以我这边用流的方式读入;
if(colList.get(j).get("type").toString().equalsIgnoreCase("BLOB")){
byte[] content = null;
java.sql.Blob blob = executeQuery.getBlob(colList.get(j).get("code").toString());
if (blob != null){
InputStream inStream = blob.getBinaryStream();
ByteArrayOutputStream bot = new ByteArrayOutputStream();
byte[] b = new byte[(int)blob.length()];
int len = 0;
while ((len = inStream.read(b)) != -1) {
bot.write(b, 0, len);
}
content = bot.toByteArray();
System.out.println("content:"+content);
}
insertpstm.setObject(j+x, content);
CLOB 是可以直接存储文字的,单字节字符数据****所以他的读入方式和blob的方式完全不一样
if(colList.get(j).get("type").toString().equalsIgnoreCase("clob")){
Clob clob = executeQuery.getClob(colList.get(j).get("code").toString());
String detailinfo = "";
if(clob != null){
detailinfo = clob.getSubString((long)1,(int)clob.length());
}
注:“code”是通过JSONO的方式获得数据列名,然后通过判断如果是blob或者clob就采取相应的读入方式;