日期:2014-05-18  浏览次数:20971 次

setBinaryStream方法读取的文件是不是有大小限制?
Connection   conn   =   DataSource.getConnection();
java.io.File   file   =   new   java.io.File( "d:\\show.doc ");
java.io.FileInputStream   fis;
String   sql   =   "insert   into   mq_receive(id,zhengwen)   values(11,?) ";
try   {
fis   =   new   java.io.FileInputStream(file);

PreparedStatement   pstatement   =   conn.prepareStatement(sql);
pstatement.setBinaryStream(1,   fis,   (int)   file.length());

pstatement.executeUpdate();
conn.commit();
pstatement.close();
}   catch   (FileNotFoundException   e)   {
//   TODO   Auto-generated   catch   block
e.printStackTrace();
}   catch   (Exception   e)   {
//   TODO   Auto-generated   catch   block
e.printStackTrace();
}
DataSource.release(conn);


setBinaryStream方法读取的文件是不是有大小限制?d:\\show.doc文件为17k时,报java.sql.SQLException:   无法从套接字读取更多的数据,比如d:\\show.doc文件为1k时,就正常插入了,这是什么原因啊??

------解决方案--------------------
大小是限制是 有的,但是肯定不会只有10几K
换成这句看看
pstatement.setBinaryStream(1, fis,fis.available());

------解决方案--------------------
是Blob 类型的吗?