SQL Batch : SQL Update « Database SQL JDBC « Java






SQL Batch

/*

Database Programming with JDBC and Java, Second Edition
By George Reese
ISBN: 1-56592-616-1

Publisher: O'Reilly

*/


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Iterator;

/**
 * Example 4.1.
 */
public class Batch {
  static public void main(String[] args) {
    Connection conn = null;

    try {
      ArrayList breakable = new ArrayList();
      PreparedStatement stmt;
      Iterator users;
      ResultSet rs;

      Class.forName(args[0]).newInstance();
      conn = DriverManager.getConnection(args[1], args[2], args[3]);
      stmt = conn.prepareStatement("SELECT user_id, password "
          + "FROM user");
      rs = stmt.executeQuery();
      while (rs.next()) {
        String uid = rs.getString(1);
        String pw = rs.getString(2);

        // Assume PasswordCracker is some class that provides
        // a single static method called crack() that attempts
        // to run password cracking routines on the password
        //                if( PasswordCracker.crack(uid, pw) ) {
        //                  breakable.add(uid);
        //            }
      }
      stmt.close();
      if (breakable.size() < 1) {
        return;
      }
      stmt = conn.prepareStatement("UPDATE user "
          + "SET bad_password = 'Y' " + "WHERE uid = ?");
      users = breakable.iterator();
      while (users.hasNext()) {
        String uid = (String) users.next();

        stmt.setString(1, uid);
        stmt.addBatch();
      }
      stmt.executeBatch();
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (conn != null) {
        try {
          conn.close();
        } catch (Exception e) {
        }
      }
    }
  }
}

           
       








Related examples in the same category

1.Create Coffees table
2.JDBC update
3.JDBC Update logic
4.Batch UpdateBatch Update
5.Get Metadata from prepareStatement
6.Batch Update: transactionBatch Update: transaction
7.Return generated keys