JDBC往MYSQL存储1G以上的BLOB字段问题

[复制链接]
查看11 | 回复1 | 2010-10-1 21:51:20 | 显示全部楼层 |阅读模式
当BLOB对象较小的时候,我们通常采用下面的方法存储blob对象:
InputStream fis = new FileInputStream(infile);
pstmt = conn.prepareStatement("insert into tmp(descs,pic) values(?,?)"); pstmt.setString(1,file.getName());
//把传过来的第一个参数设为文件名
pstmt.setBinaryStream(2,fis,fis.available());//第二个参数为文件的pstmt.executeUpdate();
但是如果文件非常大,而系统的内存又非常有限的情况下,比如1GB以上的时候这样的代码会造成超大的内存占用,使java虚拟机崩溃。有没有办法像平时普通的I/O流那样可以设定buffer大小,让文件能通过buffer循环读取的方式存到数据库中呢?以前用Oracle时是有的,mySQL下没找到方法。
高手,大大们救命,帮忙解答下哇,就50分了,不好意思!

回复

使用道具 举报

千问 | 2010-10-1 21:51:20 | 显示全部楼层
1. 你数据库字段是什么类型的?MYSQL数据库中的字段大小如下:BLOB64KBMEDIUMBLOB16MBLONGBLOB 4GB2.我建议使用InputStreamBuffered 性能高
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行