Before you start
This tutorial is for developers who need to handle multiple simultaneous users on a single Derby (or IBM Cloudscape) database. Developers who want to learn more about building Java GUI applications will also find it helpful.
In Part 1, you connected to the database using Java Database Connectivity (JDBC), thus creating basic entity classes. Part 2 used those classes to create the application, using first a GUI and then a Web-based interface, and examined the different ways of embedding, or incorporating Derby into the application. The single-user embedded application was turned into a multiuser networked application in which concurrency issues were solved by giving each user a unique schema.
While the calendar application in Part 2 allowed for multiple users, it wasn't possible for users to view one another's data. In this tutorial, you'll create this common calendar by moving everything back into the default schema and controlling concurrency issues using locking and transactions in Derby.
Over the course of this tutorial, you'll learn about:
- How to create a date picker.
- How to easily display a table of information using Java code.
- How to make information in that table editable.
- How to create and use a database transaction.
- Different types of selection anomalies.
- Database isolation levels and how to control them.
- Different types of database locks.
- The effects of scope on database locks.
- Out-of-control lock types.
This tutorial covers the building and alteration of a Java GUI application, so you should have at least a basic grasp of the Java language to follow along with that part of the tutorial. You should also have at least a fundamental grasp of how Derby works. You can get the basics in Part 1, "Understanding JDBC" and Part 2, "Embedding options" (developerWorks, September 2005).
Apache Derby is the open source center of the IBM Cloudscape database, and as such it shares many of its features, such as a small footprint and the ability to easily embed it in an application (see Resources for a link to more information about Cloudscape). Derby also provides an easy upgrade path to other databases, such as IBM DB2®.
To follow along with this tutorial, you need to have the following tools:
- Java 2 Platform, Standard Edition 1.4.2 or higher. Note that you must have the Java Developer Kit, not just the Java Runtime Environment. Download the Java code from the Sun Web site.
- The existing application. This tutorial demonstrates changes to the application created in Part 2. Download those classes.
- Apache Derby, which you can download from the Apache Software Foundation.
- JavaMail. To send e-mail reminders, you need mail.jar, which is now part of the Java package. You also need activation.jar, downloadable as part of the JavaBeans activation framework. Make sure both files are in your class path.
- A Web application server, such as Apache's Jakarta Tomcat. You can use any servlet-compatible application server, but this tutorial was written using Tomcat Version 5.5.
- JCalendar. To make life easier, you'll add a calendar picker to the application. Download the required library.
- A text editor or Integrated Development Environment (IDE). You can easily create Derby applications using an IDE, such as Eclipse, but I'm going to assume you're using a simple text editor.

