Batch.java Source code

Java tutorial

Introduction

Here is the source code for Batch.java

Source

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