Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Build a Derby calendar, Part 3: Using transactions and locking

Nicholas Chase has been involved in Web-site development for companies such as Lucent Technologies, Sun Microsystems, Oracle, and the Tampa Bay Buccaneers. He has been a high school physics teacher, a low-level radioactive waste facility manager, an online science fiction magazine editor, a multimedia engineer, an Oracle instructor, and the chief technology officer of an interactive communications company. He is the author of several books, including XML Primer Plus.

Summary:  In this final tutorial of the series, you'll finish the calendar and reminder application using the Java™ language and the Apache Derby database. In Part 1 and Part 2 of this three-part series, you created a basic calendar and reminder application using a Derby database back end and a GUI and a Web-based front end. Now that the proof of concept is complete, you can add a more friendly interface and use transactions and locking to create a truly multiuser system.

View more content in this series

Date:  27 Sep 2005
Level:  Intermediate PDF:  A4 and Letter (485 KB | 46 pages)Get Adobe® Reader®

Activity:  3316 views
Comments:  

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.

About this tutorial

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.

Prerequisites

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).


System requirements

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.

1 of 13 | Next

Comments



Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Open source, Information Management
ArticleID=94193
TutorialTitle=Build a Derby calendar, Part 3: Using transactions and locking
publish-date=09272005
author1-email=ibmquestions@nicholaschase.com
author1-email-cc=

Next steps from IBM

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Try IBM PureSystems. No charge.