To make the data persistent we choose to use a relational database, because
it allows immediate access to information given its key, and it supports asso-
ciations between product data. An alternative solution could be a file, the
main drawback being the lack of support for direct data access.
How do we connect to and access the persistent storage?
The persistence layer of the supermarket system makes use of a set of
standard technologies to support independence from the DBMS. In par-
ticular we will use JDBC (see Sidebar 14.2) as the connectivity technology
and SQL as the data management language. In our implementation we will
use the Cloudscape DB, because it bundles with the J2EE distribution.
What is the structure of the persistent data tier?
The structure of the data we want to store in the database has been
defined in the previous iterations. The database structure will follow the
same structure as the logical information presented in Figure 14.9.
Each class will be implemented as a separate table and the many-to-one
associations will be implemented with external keys on the many side (Date
To build the database we can use an SQL script CreateTables.sql that con-
tains the commands to create the tables. For each table we define a primary
key that is a long integer. This file can be used from the Cloudscape inter-
active SQL environment (activated with the command cloudscape - isql ) with
the command run 'CreateTables.sql' .
CREATE TABLE item (
ID LONGINT CONSTRAINT pk_item PRIMARY KEY ,
name VARCHAR (30),
price DOUBLE PRECISION ,
CREATE TABLE customer (
ID LONGINT CONSTRAINT pk_customer PRIMARY KEY ,
name VARCHAR (30)