执行SQL Batch

王朝mssql·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

/*

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

}

}

}

}

}

(出处:http://www.knowsky.com)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航