mysql 的机制其实应该是这样的:当你数据库缓存中的数据量达到tmp_table_size时,它会自动提交一次,然后继续接下来的操作,每tmp_table_size刷新数据库缓存
MySQL 中的 BLOB 数据由四种类型体现,分别是 TINYBLOB 其容量为 256 字节、BLOB 其容量为 64KB、MEDIUMBLOB 其容量为 16MB、LONGBLOB 其容量为 4GB。
CLOB类型默认为1m 如果大于的话可能会出现
异常 这是可以在
[mysqld]下面添加 max_allowed_packet=10M来扩大限制
在 jdk 6。0 以前 向数据库插入clob 和blob数据的操作方法:
void setBinaryStream(int parameterIndex, java.io.InputStream x, int length)方法
而在jdk 6.0以后就可以用
void setClob(int parameterIndex, Reader reader)
void setBlob(int parameterIndex, InputStream inputStream)方法来插入clob/blob
读取时候可以用读取流来处理或者用:
clob的时候可以
用 Clob.getSubString(pos, length)不过length是个int型的
或者用
Clob c = rs.getClob("clumn");
StringBuffer a = new StringBuffer(1024);
Reader r = c.getCharacterStream();
char[] cc = new char[1];
int i = -1;
while((i =r.read(cc))!=-1){
a.append(cc);
}
读取blob可以用:
Blob b = rs.getBlob("clumn");
java.io.InputStream getBinaryStream ()或者getBytes(pos, length)