遇到一个棘手的问题,需要通过java代码向db2保存一个文件,文件不大,几十K吧,由于一些历史原因,jdk只能用1.4的,当我用下面这段代码尝试保存文件时
[code="java"]public void saveFileToDB2() {
try {
Class.forName("com.ibm.db2.jcc.DB2Driver");
//url,user,pwd这三项是我故意写的伪代码
Connection connection = DriverManager.getConnection("url","user","pwd");
String sql2 = "insert into save_file (jobid,jobcreationdate,inputfile) values (?,?,?)";
PreparedStatement ps = connection.prepareStatement(sql2);
ps.setInt(1, 1);
ps.setString(2, "20120913");
FileInputStream fis = new FileInputStream(new File("C:\inputfile.xml"));
ps.setBinaryStream(3, fis, fis.available());
int ok = ps.executeUpdate();
if(ok > 0) {
System.out.println("Insert OK");
} else {
System.out.println("Insert Fail");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}[/code]
出现了下面的错误,
[code="java"]com.ibm.db2.jcc.b.lm: DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=1;ADMINISTRATOR.save_file, DRIVER=3.50.152[/code]
查了一下,这是因为有一个参数类型不正确引起的,想必就是第三个参数啦。
在数据库中,三个字段的类型分别为
Integer,Character,Blob
哪位朋友帮忙看看啊。
PS:如果这个问题和JDK版本无关,请指出,如果有其它方法实现相同功能,也请指出。