Mega Code Archive

 
Categories / Java / Database SQL JDBC
 

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) {         }       }     }   } }