JDBC Transaction
/*
MySQL and Java Developer's Guide
Mark Matthews, Jim Cole, Joseph D. Gradecki
Publisher Wiley,
Published February 2003,
ISBN 0471269239
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
public class Transaction {
Connection connection;
public Transaction() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager
.getConnection("jdbc:mysql://192.168.1.25/accounts?user=spider&password=spider");
} catch (Exception e) {
System.err.println("Unable to find and load driver");
System.exit(1);
}
}
public void doWork() {
try {
java.util.Date now = new java.util.Date();
connection.setAutoCommit(false);
Statement statement = connection.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = statement
.executeQuery("SELECT * FROM acc_add WHERE acc_id = 1034055 and ts = 0");
// set old row ts = current time
rs.next();
rs.updateTimestamp("ts", new Timestamp(now.getTime()));
rs.updateRow();
rs.moveToInsertRow();
rs.updateInt("add_id", rs.getInt("add_id"));
rs.updateInt("acc_id", rs.getInt("acc_id"));
rs.updateString("name", rs.getString("name"));
rs.updateString("address1", "555 East South Street");
rs.updateString("address2", "");
rs.updateString("address3", "");
rs.updateString("city", rs.getString("city"));
rs.updateString("state", rs.getString("state"));
rs.updateString("zip", rs.getString("zip"));
rs.updateTimestamp("ts", new Timestamp(0));
rs.updateTimestamp("act_ts", new Timestamp(now.getTime()));
rs.insertRow();
connection.commit();
rs.close();
statement.close();
connection.close();
} catch (Exception e) {
try {
connection.rollback();
} catch (SQLException error) {
}
e.printStackTrace();
}
}
public static void main(String[] args) {
Transaction trans = new Transaction();
trans.doWork();
}
}
Related examples in the same category