FileDocCategorySizeDatePackage
Batch.javaAPI DocExample1975Tue Aug 22 20:53:30 BST 2000None

Batch

public class Batch extends Object
Example 4.1.

Fields Summary
Constructors Summary
Methods Summary
public static voidmain(java.lang.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 ) { }
            }
        }