使用jdbc批处理读取批量数据

时间:2015-02-05 12:41:09

标签: performance jdbc batch-processing bulkinsert

我有从数据库中读取数据的方案,修改并再次需要更新数据库。数据库中的数据超过1个。

public static void viewTable(Connection con, String dbName)
    throws SQLException {

Statement stmt = null;
String query = "SELECT ID, ACCOUNT_NUMBER FROM BANK.ACCOUNT";
String updateUuery = "UPDATE BANK.ACCOUNT ACCOUNT_NUMBER=? WHERE ID=?";

try {
    stmt = con.createStatement();
    PreparedStatement ps = con.prepareStatement(updateUuery);
    stmt.setFetchSize(25);
    ResultSet rs = stmt.executeQuery(query);
    while (rs.next()) {
        int supplierID = rs.getInt("ID");
        String accountNumber = rs.getString("ACCOUNT_NUMBER");
        String decrypt=decryptString(accountNumber);
        String encrypt=encryptString(decrypt);
        ps.setString(1,encrypt);
        ps.setInt(2,supplierID);
        ps.addBatch();
    }
    ps.executeBatch();
} catch (SQLException e) {
} finally {
    if (stmt != null) {
        stmt.close();
    }
}}public static String encryptString(String encryptString){ //algorithm to encrypt
return "encryptedString";

}

目前我使用纯JDBC来使用批处理进行读取和更新。

我的问题是

  1. 为了提供更好的性能,如何阅读批量数据和更新。
  2. 如果我提交数据1 lac记录应该提交。如果有任何失败,1 lac记录会回滚(单次交易)。

    在此输入代码

0 个答案:

没有答案