FileDocCategorySizeDatePackage
Interest.javaAPI DocExample2252Tue Aug 22 21:05:10 BST 2000None

Interest.java

import java.sql.*;
import javax.naming.*;
import javax.sql.*;

/**
 * Example 5.1.
 */
public class Interest {
    static public void main(String[] args) {
        try {
            RowSet rs = new com.imaginary.sql.ImaginaryRowSet();

            rs.setDataSourceName("jdbc/oraxa");
            rs.setUsername("borg");
            rs.setPassword("womble");
            rs.setCommand("SELECT acct_id, balance, cust_id " +
                          "FROM account");
            rs.execute();

            Context ctx = new InitialContext();
            // this data source is pooled and distributed
            // all distributed data sources are pooled data sources
            DataSource ds = (DataSource)ctx.lookup("jdbc/oraxa");
            Connection con = ds.getConnection("borg", "");
            PreparedStatement acct, cust;

            // the account and customer tables are in two different
            // databases, but this application does not need to care
            acct = con.prepareStatement("UPDATE account " +
                                        "SET balance = ? " +
                                        "WHERE acct_id = ?");
            cust = con.prepareStatement("UPDATE customer " +
                                        "SET last_interest = ? " +
                                        "WHERE cust_id = ?");
            while( rs.next() ) {
                long acct_id, cust_id;
                double balance, interest;

                acct.clearParameters();
                cust.clearParameters();
                acct_id = rs.getLong(1);
                balance = rs.getDouble(2);
                cust_id = rs.getLong(3);
                interest = balance * (0.03/12);
                balance = balance + interest;
                acct.setDouble(1, balance);
                acct.setLong(2, acct_id);
                acct.executeUpdate();
                cust.setDouble(1, interest);
                cust.setLong(2, cust_id);
                cust.executeUpdate();
            }
            rs.close();
            con.close();
        }
        catch( Exception e ) {
            e.printStackTrace();
        }
    }
}