📄 cloudscapedataaccess.java
字号:
// update emailAddresses table sqlUpdateEmail.setString( 1, person.getEmailAddress() ); sqlUpdateEmail.setInt( 2, person.getEmailID() ); result = sqlUpdateEmail.executeUpdate(); // if update fails, rollback and discontinue if ( result == 0 ) { connection.rollback(); // rollback update return false; // update unsuccessful } connection.commit(); // commit update return true; // update successful } // end try // detect problems updating database catch ( SQLException sqlException ) { // rollback transaction try { connection.rollback(); // rollback update return false; // update unsuccessful } // handle exception rolling back transaction catch ( SQLException exception ) { throw new DataAccessException( exception ); } } } // end method savePerson // Insert new entry. Method returns boolean indicating // success or failure. public boolean newPerson( AddressBookEntry person ) throws DataAccessException { // insert person in database try { int result; // insert first and last name in names table sqlInsertName.setString( 1, person.getFirstName() ); sqlInsertName.setString( 2, person.getLastName() ); result = sqlInsertName.executeUpdate(); // if insert fails, rollback and discontinue if ( result == 0 ) { connection.rollback(); // rollback insert return false; // insert unsuccessful } // determine new personID ResultSet resultPersonID = sqlPersonID.executeQuery(); if ( resultPersonID.next() ) { int personID = resultPersonID.getInt( 1 ); // insert address in addresses table sqlInsertAddress.setInt( 1, personID ); sqlInsertAddress.setString( 2, person.getAddress1() ); sqlInsertAddress.setString( 3, person.getAddress2() ); sqlInsertAddress.setString( 4, person.getCity() ); sqlInsertAddress.setString( 5, person.getState() ); sqlInsertAddress.setString( 6, person.getZipcode() ); result = sqlInsertAddress.executeUpdate(); // if insert fails, rollback and discontinue if ( result == 0 ) { connection.rollback(); // rollback insert return false; // insert unsuccessful } // insert phone number in phoneNumbers table sqlInsertPhone.setInt( 1, personID ); sqlInsertPhone.setString( 2, person.getPhoneNumber() ); result = sqlInsertPhone.executeUpdate(); // if insert fails, rollback and discontinue if ( result == 0 ) { connection.rollback(); // rollback insert return false; // insert unsuccessful } // insert email address in emailAddresses table sqlInsertEmail.setInt( 1, personID ); sqlInsertEmail.setString( 2, person.getEmailAddress() ); result = sqlInsertEmail.executeUpdate(); // if insert fails, rollback and discontinue if ( result == 0 ) { connection.rollback(); // rollback insert return false; // insert unsuccessful } connection.commit(); // commit insert return true; // insert successful } else return false; } // end try // detect problems updating database catch ( SQLException sqlException ) { // rollback transaction try { connection.rollback(); // rollback update return false; // update unsuccessful } // handle exception rolling back transaction catch ( SQLException exception ) { throw new DataAccessException( exception ); } } } // end method newPerson // Delete an entry. Method returns boolean indicating // success or failure. public boolean deletePerson( AddressBookEntry person ) throws DataAccessException { // delete a person from database try { int result; // delete address from addresses table sqlDeleteAddress.setInt( 1, person.getPersonID() ); result = sqlDeleteAddress.executeUpdate(); // if delete fails, rollback and discontinue if ( result == 0 ) { connection.rollback(); // rollback delete return false; // delete unsuccessful } // delete phone number from phoneNumbers table sqlDeletePhone.setInt( 1, person.getPersonID() ); result = sqlDeletePhone.executeUpdate(); // if delete fails, rollback and discontinue if ( result == 0 ) { connection.rollback(); // rollback delete return false; // delete unsuccessful } // delete email address from emailAddresses table sqlDeleteEmail.setInt( 1, person.getPersonID() ); result = sqlDeleteEmail.executeUpdate(); // if delete fails, rollback and discontinue if ( result == 0 ) { connection.rollback(); // rollback delete return false; // delete unsuccessful } // delete name from names table sqlDeleteName.setInt( 1, person.getPersonID() ); result = sqlDeleteName.executeUpdate(); // if delete fails, rollback and discontinue if ( result == 0 ) { connection.rollback(); // rollback delete return false; // delete unsuccessful } connection.commit(); // commit delete return true; // delete successful } // end try // detect problems updating database catch ( SQLException sqlException ) { // rollback transaction try { connection.rollback(); // rollback update return false; // update unsuccessful } // handle exception rolling back transaction catch ( SQLException exception ) { throw new DataAccessException( exception ); } } } // end method deletePerson // method to close statements and database connection public void close() { // close database connection try { sqlFind.close(); sqlPersonID.close(); sqlInsertName.close(); sqlInsertAddress.close(); sqlInsertPhone.close(); sqlInsertEmail.close(); sqlUpdateName.close(); sqlUpdateAddress.close(); sqlUpdatePhone.close(); sqlUpdateEmail.close(); sqlDeleteName.close(); sqlDeleteAddress.close(); sqlDeletePhone.close(); sqlDeleteEmail.close(); connection.close(); } // end try // detect problems closing statements and connection catch ( SQLException sqlException ) { sqlException.printStackTrace(); } } // end method close // Method to clean up database connection. Provided in case // CloudscapeDataAccess object is garbage collected. protected void finalize() { close(); }} // end class CloudscapeDataAccess/************************************************************************** * (C) Copyright 2001 by Deitel & Associates, Inc. and Prentice Hall. * * All Rights Reserved. * * * * DISCLAIMER: The authors and publisher of this book have used their * * best efforts in preparing the book. These efforts include the * * development, research, and testing of the theories and programs * * to determine their effectiveness. The authors and publisher make * * no warranty of any kind, expressed or implied, with regard to these * * programs or to the documentation contained in these books. The authors * * and publisher shall not be liable in any event for incidental or * * consequential damages in connection with, or arising out of, the * * furnishing, performance, or use of these programs. * *************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -