我想把test.zip插入数据库中,10k的时候没问题,可是当这个文件长度超过40k的时候就抛出了异常。
import java.sql.*;
import java.io.*;
import java.util.jar.*;
import java.util.Enumeration;
import java.util.zip.*;class JdbcCon {
String ur = "jdbc:oracle:thin:@192.168.201.201:1521:sdycdevp";
String usr = "sdycdevuser";
public Connection getCon() throws SQLException {
System.out.println("连接数据库......");
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); Connection db_con = DriverManager.getConnection(ur, usr, usr);
return db_con;
}
}
class Test {
public static void main(String[] arg) throws SQLException {
try {
StringBuffer tokenSet = new StringBuffer();
//将test.zip插入数据库
File csvfilepath = new File("G:\\test.zip");

System.out.println("读之前:" + csvfilepath.length());
//建立连接
JdbcCon jdb = new JdbcCon();

String insertSQL = "Insert INTO cozipfile VALUES(?)";

PreparedStatement pstmt1 = jdb.getCon().prepareStatement(insertSQL);

FileInputStream fis = new FileInputStream(csvfilepath); pstmt1.setBinaryStream(1, fis, (int) csvfilepath.length()); System.out.println("读之后:" + csvfilepath.length());
//执行
pstmt1.execute(); } catch (Exception e) {
e.printStackTrace();
}
}}
××××××××××
java.sql.SQLException: 无法从套接字读取更多的数据
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:184)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:226)
        at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:972)
        at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:741)
        at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:700)
        at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:373)
        at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1476)
        at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:887
)
        at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.ja
va:1862)
        at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.jav
a:1787)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:2377)
        at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepar
edStatement.java:427)
        at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStat
ement.java:492)