Database Programming with JDBC and Java
by George Reese
Published by O'Reilly & Associates
Database Programming with JDBC and Java was originally published four years ago and is now in its second revision. Significantly improved over the first edition, the book is targeted toward those who want ideas on how database programming works with Java. This latest edition also covers advanced topics such as serialization, persistence, and security.
A growing trend popular with book publishers is to incorporate Javadoc printouts of the Java APIs into new books - even though you can download them for free. This practice allows publishers to command high prices for their books...and make them look larger. This book is no exception. It totals 330 pages, with about 217 pages of actual content. One third of this book is stuff you can get free.
In writing this review I compared the information in the book to the Sun JDBC tutorial. The title and the content definitely don't match. The book discusses the use of RMI (Remote Method Invocation), EJB (Enterprise JavaBeans) containers, and JNDI (Java Naming and Directory Interface). It opens with a brief overview of ANSI standard SQL, and is written primarily for developers who've never worked with a relational database before. The next chapters deal more with working with databases than with JDBC itself.
Chapters 3 and 4, which discuss JDBC briefly, cover typical programming scenarios such as working with stored procedures, batch processing, updatable result sets, and advanced data types. The JDBC 2.0 specification now recommends a standard way of dealing with connection pooling. In the past, individual developers addressed this mainly with reference to the application server you were deploying. Chapter 5 contains just six pages of text on the JDBC optional package that contains this functionality.
I thought Chapter 7, which covers architecture and design patterns, was good. Except for the same stereotypical example of how an applet and Swing use the model/view pattern, it provided some useful information. If you're not familiar with design patterns, I recommend Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma et al. (Addison-Wesley).
Chapter 8, on distributed component models, covers security, transactions, lookup, searches, and entity relationships. The chapter contains some useful code examples for generating unique sequence numbers, generic facade (a type of pattern), and implementing collections. Chapter 9 is about persistence and provides solid examples of a framework that is very useful in high-throughput database applications.
Chapter 10 covers the design of a UI that interfaces with business objects. Today 99% of applications developed in Java use HTML for the interface. The examples in this chapter use Swing and don't address any concerns of developers whose interface is HTML. I did learn some tips about Swing from this chapter - they'd be useful in pursuing the Sun certification exam - but otherwise it didn't provide any insight into how to develop a typical Web application.
The book doesn't provide many opportunities to learn anything other than what you could figure out for yourself from the Sun JDBC tutorial and reference. The publisher, O'Reilly, is known for delivering high quality, but this book fails to live up to the standard I've come to expect as a buyer of their books. I recommend you save your money and buy a good J2EE book.
James McGovern, coauthor of several Java-related books, is a senior technical architect for Enherent Corporation in their software development center in Windsor, Connecticut. His focus is on strategy and architecture for high-profile e-business Web sites. He can be contacted at [email protected]