我正在尝试使用jdbc瘦驱动程序在java数据库中逐个插入某些数据。 它们包含一个图像,我从一个ibm db2作为十六进制字符串(也在程序中)。
我的问题是我被迫使用预准备语句,因为十六进制字符串超过4000个字符,并且这样消耗了很多时间,我想知道是否有更快的方法来获取该十六进制字符串我的oracle db中的blob。
总的来说它确实有效,但速度很慢。对于约3400次,它需要花费24分钟,但是有更多的表,约有200,000个。
这是我在准备工作中设置值的代码(我在编码/编程方面没有经验,所以我很感激任何帮助)
while (rs.next()) { // rs = ResultSet with data
maxCount++;
System.out.println(maxCount);
for (int j = 1; j <= md.getColumnCount(); j++) { // md = ResultSetMetaData
switch (md.getColumnType(j)) {
case 1: // CHAR
oracleStmt.setString(j, rs.getString(j));
break;
case -2: // BINARY
oracleStmt.setBlob(j, rs.getBinaryStream(j));
break;
case 12: // VARCHAR
oracleStmt.setString(j, rs.getString(j));
break;
case -1: // LONGVARCHAR
oracleStmt.setString(j, rs.getString(j));
break;
case -3: // VARBINARY
oracleStmt.setBlob(j, rs.getBinaryStream(j));
break;
case -4: // LONGVARBINARY
oracleStmt.setBlob(j, rs.getBinaryStream(j));
break;
case 3: // DECIMAL
oracleStmt.setBigDecimal(j, rs.getBigDecimal(j));
break;
case 93: // TIMESTAMP
oracleStmt.setTimestamp(j, rs.getTimestamp(j));
default:
break;
}
}
oracleStmt.executeUpdate();
}
我现在的问题是如何使用java增加预准备语句的速度/将十六进制字符串作为blob插入