Transaction.java Source code

Java tutorial

Introduction

Here is the source code for Transaction.java

Source

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