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

JDBC读写MySQL的大字段数据

JDBC读写MySQL的大字段数据

?

不管你是新手还是老手,大字段数据的操作常常令你感到很头痛。因为大字段有些特殊,不同数据库处理的方式不一样,大字段的操作常常是以流的方式来处理的。而非一般的字段,一次即可读出数据。本人以前用到Spring+iBatis架构来操作大字段,结果以惨烈失败而告终,在网上寻求解决方案,也没找到答案。最终以JDBC来实现了大字段操作部分。

?

本文以MySQL为例,通过最基本的JDBC技术来处理大字段的插入、读取操作。

?

环境:

MySQL5.1

JDK1.5

?

一、认识MySQL的大字段类型

?

BLOB是一个二进制大对象,可以容纳可变数量的数据。有4BLOB类型:TINYBLOBBLOBMEDIUMBLOBLONGBLOB。它们只是可容纳值的最大长度不同。

?

4TEXT类型:TINYTEXTTEXTMEDIUMTEXTLONGTEXT。这些对应4BLOB类型,有相同的最大长度和存储需求。

?

BLOB 列被视为二进制字符串(字节字符串)TEXT列被视为非二进制字符串(字符字符串)BLOB列没有字符集,并且排序和比较基于列值字节的数值值。TEXT列有一个字符集,并且根据字符集的 校对规则对值进行排序和比较。

?

TEXTBLOB列的存储或检索过程中,不存在大小写转换。

?

当未运行在严格模式时,如果你为BLOBTEXT列分配一个超过该列类型的最大长度的值值,值被截取以保证适合。

?

几种类型的大字段最大长度说明:

TINYBLOB最大长度为255(2^[8]1)字节的BLOB列。

TINYTEXT最大长度为255(2^[8]1)字符的TEXT列。

BLOB[(M)]最大长度为65,535(2^[16]1)字节的BLOB列。可以给出该类型的可选长度M。如果给出,则MySQL将列创建为最小的但足以容纳M字节长的值的BLOB类型。

TEXT[(M)]最大长度为65,535(2^[16]1)字符的TEXT列。可以给出可选长度M。则MySQL将列创建为最小的但足以容纳M字符长的值的TEXT类型。

MEDIUMBLOB最大长度为16,777,215(2^[24]1)字节的BLOB列。

MEDIUMTEXT最大长度为16,777,