日期:2014-05-16  浏览次数:20675 次

JDBC处理大数据、大文本、二进制数据、批处理相关知识

JDBC处理大数据、大文本、二进制数据、批处理相关知识

在实际开发中,程序需要把大文本或二进制数据保存到数据库。

基本概念:大数据也称之为LOB(Large Objects)LOB又分为:clobblob

clob用于存储大文本。Text

blob用于存储二进制数据,例如图像、声音、二进制文等。

MySQL而言只有blob,而没有clobmysql存储大文本采用的是TextTextblob分别又分为:

TINYTEXTTEXTMEDIUMTEXTLONGTEXT

TINYBLOBBLOBMEDIUMBLOBLONGBLOB 

使用JDBC处理大文本

对于MySQL中的Text类型,可调用如下方法设置:

PreparedStatement.setCharacterStream(index, reader, length);

//注意length长度须设置,并且设置为int

MySQL中的Text类型,可调用如下方法获取:

reader = resultSet. getCharacterStream(i);

reader = resultSet.getClob(i).getCharacterStream();

string s = resultSet.getString(i);

使用JDBC处理二进制数据

对于MySQL中的BLOB类型,可调用如下方法设置:

PreparedStatement. setBinaryStream(i, inputStream, length);

MySQL中的BLOB类型,可调用如下方法获取:

InputStream in  = resultSet.getBinaryStream(i);

InputStream in  = resultSet.getBlob(i).getBinaryStream(); 

使用JDBC进行批处理

业务场景:当需要向数据库发送一批