pstmt = conn.prepareStatement("select ownerName, balance from accounts where id = ?",java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
这是客户端的程序 public class AccountClient { public static void main(String[] args) throws Exception { Account account = null; try { /* * Get a reference to the Account Home Object - the * factory for Account EJB Objects */ Context ctx = new InitialContext(System.getProperties()); Object obj = ctx.lookup("AccountHome"); AccountHome home = (AccountHome) javax.rmi.PortableRemoteObject.narrow(obj, AccountHome.class); System.err.println("Total of all accounts in bank initially = " + home.getTotalBankValue()); /* * Use the factory to create the Account EJB Object */ home.create("123-456-7890", "John Smith"); /* * Find an account */ Iterator i = home.findByOwnerName("John Smith").iterator(); if (i.hasNext()) { account = (Account) javax.rmi.PortableRemoteObject.narrow( i.next(), Account.class); } else { throw new Exception("Could not find account"); } /* * Call the balance() method, and print it */ System.out.println("Initial Balance = " + account.getBalance()); /* * Deposit $100 into the account */ account.deposit(100); /* * Retrieve the resulting balance. */ System.out.println("After depositing 100, account balance = " + account.getBalance()); System.out.println("Total of all accounts in bank now = " + home.getTotalBankValue()); /* * Retrieve the Primary Key from the EJB Object */ AccountPK pk = (AccountPK) account.getPrimaryKey(); /* * Release our old EJB Object reference. Now call * find() again, this time querying on Account ID * (i.e. the Primary Key). */ account = null; account = home.findByPrimaryKey(pk); /* * Print out current balance */ System.out.println("Found account with ID " + pk + ". Balance = " + account.getBalance()); /* * Try to withdraw $150 */ System.out.println("Now trying to withdraw $150, which is more than is currently available. This should generate an exception.."); account.withdraw(150); } catch (Exception e) { System.out.println("Caught exception!"); e.printStackTrace(); } finally { /* * Destroy the Entity permanently */ try { System.out.println("Destroying account.."); if (account != null) { account.remove(); } } catch (Exception e) { e.printStackTrace(); } } } }
public class AccountClient { public static void main(String[] args) throws Exception { Account account = null; try {
/*
* Get a reference to the Account Home Object - the
* factory for Account EJB Objects
*/
Context ctx = new InitialContext(System.getProperties()); Object obj = ctx.lookup("AccountHome");
AccountHome home = (AccountHome) javax.rmi.PortableRemoteObject.narrow(obj, AccountHome.class); System.err.println("Total of all accounts in bank initially = " + home.getTotalBankValue()); /*
* Use the factory to create the Account EJB Object
*/
home.create("123-456-7890", "John Smith"); /*
* Find an account
*/
Iterator i = home.findByOwnerName("John Smith").iterator();
if (i.hasNext()) {
account = (Account)
javax.rmi.PortableRemoteObject.narrow(
i.next(), Account.class); }
else {
throw new Exception("Could not find account");
} /*
* Call the balance() method, and print it
*/
System.out.println("Initial Balance = " + account.getBalance()); /*
* Deposit $100 into the account
*/
account.deposit(100); /*
* Retrieve the resulting balance.
*/
System.out.println("After depositing 100, account balance = " + account.getBalance()); System.out.println("Total of all accounts in bank now = " + home.getTotalBankValue()); /*
* Retrieve the Primary Key from the EJB Object
*/
AccountPK pk = (AccountPK) account.getPrimaryKey(); /*
* Release our old EJB Object reference. Now call
* find() again, this time querying on Account ID
* (i.e. the Primary Key).
*/
account = null;
account = home.findByPrimaryKey(pk); /*
* Print out current balance
*/
System.out.println("Found account with ID " + pk + ". Balance = " + account.getBalance()); /*
* Try to withdraw $150
*/
System.out.println("Now trying to withdraw $150, which is more than is currently available. This should generate an exception..");
account.withdraw(150); }
catch (Exception e) {
System.out.println("Caught exception!");
e.printStackTrace();
}
finally {
/*
* Destroy the Entity permanently
*/
try {
System.out.println("Destroying account..");
if (account != null) {
account.remove();
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
}
examples.AccountClient.main(AccountClient.java:102)
第102行。