public static void bigBlod_test_Execute() throws IOException, SQLException {
String sql = "insert into Blog_test values(3,?)";
String databaseName = "blog_test";
Connection con = JdbcUtils.getConnection1(databaseName);
PreparedStatement pst = con.prepareStatement(sql);
File file = new File("src/modelofjdbc/1.txt");
Reader read = new BufferedReader(new FileReader(file));
pst.setCharacterStream(1, read, (int)file.length()-3);
int i = pst.executeUpdate();
System.out.println("i=" + i);
read.close();
con.close();
pst.close();
}
这里的pst.setCharacterStream(1, read, (int)file.length()-3);
(int)file.length()为什么要减3,如果不减3的话就会报错:
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: 在索引 179 处发现该字符流提前结束。指定长度为:182。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.bufferAppendRPCReader(Unknown Source)
at com.microsoft.sqlserver.jdbc.DTV$SendByRPCOp.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.DTV.executeOp(Unknown Source)
at com.microsoft.sqlserver.jdbc.DTV.sendByRPC(Unknown Source)
at com.microsoft.sqlserver.jdbc.Parameter.sendByRPC(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.sendParamsByRPC(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doPrepExec(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(Unknown Source)
at modelofjdbc.Base.bigBlod_test_Execute(Base.java:115)
at modelofjdbc.Base.main(Base.java:27)
谁能给个解释??