This book describes the standard Java interfaces that make portable object-oriented access to relational databases possible and offers a robust model for writing applications that are easy to maintain. It introduces the JDBC and RMI packages and uses them to develop three-tier applications (applications divided into a user interface, an object-oriented logic component, and an information store). This book is the key to becoming a more effective application developer for Java database programs. The book's key contribution is a set of patterns that separate the various functions of the Java application and facilitate the growth and maintenance of an application. Patterns allow isolation of critical tasks like object creation, information storage and retrieval, and the committing or aborting of transactions. The book covers Java 1.1 and includes reference listings for JDBC and the most important RMI classes. All techniques are illustrated with working examples.