Implemented SWS-83: airline sample now uses HSQLDB in memory to test.

Also using Maven2 profiles for the various database settings.
This commit is contained in:
Arjen Poutsma
2007-01-23 19:02:08 +00:00
parent 271277b11c
commit 0a7e736e7f
21 changed files with 307 additions and 81 deletions

View File

@@ -1 +0,0 @@
DROP DATABASE IF EXISTS airline;

View File

@@ -1,6 +0,0 @@
DROP TABLE FREQUENT_FLYER;
DROP TABLE PASSENGER_TICKET;
DROP TABLE PASSENGER;
DROP TABLE TICKET;
DROP TABLE FLIGHT;
DROP TABLE AIRPORT;

View File

@@ -1,8 +1,6 @@
# Properties file with hibernate-related settings.
#hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
#hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.dialect=${hibernate.dialect}
hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
#hibernate.hbm2ddl.auto=create-drop
#hibernate.show_sql=true

View File

@@ -1,14 +1,4 @@
#jdbc.driverClassName=org.hsqldb.jdbcDriver
#jdbc.username=sa
#jdbc.password=
#jdbc.url=jdbc:hsqldb:mem:airline
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.username=airline
jdbc.password=airline
jdbc.url=jdbc:mysql://localhost/airline
#jdbc.driverClassName=org.postgresql.Driver
#jdbc.username=airline
#jdbc.password=airline
#jdbc.url=jdbc:postgresql://localhost/airline
jdbc.driverClassName=${jdbc.driverClassName}
jdbc.username=${jdbc.username}
jdbc.password=${jdbc.password}
jdbc.url=${jdbc.url}

View File

@@ -0,0 +1,61 @@
DROP TABLE FREQUENT_FLYER IF EXISTS;
DROP TABLE PASSENGER_TICKET IF EXISTS;
DROP TABLE PASSENGER IF EXISTS;
DROP TABLE TICKET IF EXISTS;
DROP TABLE FLIGHT IF EXISTS;
DROP TABLE AIRPORT IF EXISTS;
CREATE TABLE AIRPORT (
CODE char(3) NOT NULL,
NAME varchar(20) NOT NULL,
CITY varchar(255) NOT NULL,
PRIMARY KEY (CODE)
);
CREATE TABLE FLIGHT (
ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
NUMBER VARCHAR(20) NOT NULL,
DEPARTURE_TIME TIMESTAMP NOT NULL,
FROM_AIRPORT_CODE CHAR(3) NOT NULL,
ARRIVAL_TIME TIMESTAMP NOT NULL,
TO_AIRPORT_CODE CHAR(3) NOT NULL,
SEATS_AVAILABLE INT NOT NULL,
SERVICE_CLASS VARCHAR(10) NOT NULL,
MILES INT NOT NULL,
PRIMARY KEY (ID),
UNIQUE (NUMBER, DEPARTURE_TIME),
CONSTRAINT FK_FLIGHT_AIRPORT_FROM FOREIGN KEY (FROM_AIRPORT_CODE) REFERENCES AIRPORT,
CONSTRAINT FK_FLIGHT_AIRPORT_TO FOREIGN KEY (TO_AIRPORT_CODE) REFERENCES AIRPORT
);
CREATE TABLE TICKET (
ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
ISSUE_DATE DATE NOT NULL,
FLIGHT_ID BIGINT NOT NULL,
PRIMARY KEY (ID),
CONSTRAINT FK_TICKET_FLIGHT FOREIGN KEY (FLIGHT_ID) REFERENCES FLIGHT
);
CREATE TABLE PASSENGER (
ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
FIRST_NAME VARCHAR(30),
LAST_NAME VARCHAR(30),
PRIMARY KEY (ID)
);
CREATE TABLE PASSENGER_TICKET (
TICKET_ID BIGINT NOT NULL,
PASSENGER_ID BIGINT NOT NULL,
PRIMARY KEY (TICKET_ID, PASSENGER_ID),
CONSTRAINT PASSENGER_TICKET_TICKET FOREIGN KEY (TICKET_ID) REFERENCES TICKET,
CONSTRAINT PASSENGER_TICKET_PASSENGER FOREIGN KEY (PASSENGER_ID) REFERENCES PASSENGER
);
CREATE TABLE FREQUENT_FLYER (
PASSENGER_ID BIGINT NOT NULL,
MILES INTEGER,
PASSWORD VARCHAR(255),
USERNAME VARCHAR(255),
PRIMARY KEY (PASSENGER_ID),
CONSTRAINT FREQUENT_FLYER_PASSENGER FOREIGN KEY (PASSENGER_ID) REFERENCES PASSENGER
)

View File

@@ -1,14 +1,17 @@
CREATE DATABASE IF NOT EXISTS airline;
USE AIRLINE;
GRANT ALL ON airline.* TO airline@localhost IDENTIFIED BY 'airline';
USE airline;
DROP TABLE IF EXISTS FREQUENT_FLYER;
DROP TABLE IF EXISTS PASSENGER_TICKET;
DROP TABLE IF EXISTS PASSENGER;
DROP TABLE IF EXISTS TICKET;
DROP TABLE IF EXISTS FLIGHT;
DROP TABLE IF EXISTS AIRPORT;
CREATE TABLE AIRPORT (
CODE CHAR(3) NOT NULL PRIMARY KEY,
NAME VARCHAR(20) NOT NULL,
CITY VARCHAR(20) NOT NULL
);
) TYPE=INNODB;
CREATE TABLE FLIGHT (
ID INT(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -21,24 +24,24 @@ CREATE TABLE FLIGHT (
SEATS_AVAILABLE INT(4) UNSIGNED NOT NULL,
MILES INT(4) UNSIGNED NOT NULL,
UNIQUE KEY IDX_NUMBER_DEPARTURE_TIME (NUMBER, DEPARTURE_TIME)
);
) TYPE=INNODB;
CREATE TABLE TICKET (
ID INT(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
ISSUE_DATE DATE NOT NULL,
FLIGHT_ID INT(4) UNSIGNED NOT NULL REFERENCES FLIGHT(ID)
);
) TYPE=INNODB;
CREATE TABLE PASSENGER (
ID INT(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
FIRST_NAME VARCHAR(30),
LAST_NAME VARCHAR(30)
);
) TYPE=INNODB;
CREATE TABLE PASSENGER_TICKET (
PASSENGER_ID INT(4) UNSIGNED NOT NULL REFERENCES PASSENGER(ID),
TICKET_ID INT(4) UNSIGNED NOT NULL REFERENCES TICKET(ID)
);
) TYPE=INNODB;
CREATE TABLE FREQUENT_FLYER (
PASSENGER_ID INT(4) UNSIGNED NOT NULL PRIMARY KEY REFERENCES PASSENGER(ID),
@@ -46,7 +49,7 @@ CREATE TABLE FREQUENT_FLYER (
PASSWORD VARCHAR(10) NOT NULL,
MILES INT(4) UNSIGNED NOT NULL,
UNIQUE KEY IDX_USERNAME (USERNAME)
);
) TYPE=INNODB;

View File

@@ -1,5 +1,9 @@
CREATE DATABASE airline;
GRANT ALL ON DATABASE airline to airline;
DROP TABLE FREQUENT_FLYER;
DROP TABLE PASSENGER_TICKET;
DROP TABLE PASSENGER;
DROP TABLE TICKET;
DROP TABLE FLIGHT;
DROP TABLE AIRPORT;
CREATE TABLE AIRPORT (
CODE CHAR(3) NOT NULL PRIMARY KEY,

View File

@@ -0,0 +1,6 @@
# Test-specific settings for the DAO layer
# Uses an in-memory HSQL database
hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
hibernate.hbm2ddl.auto=create-drop

View File

@@ -0,0 +1,7 @@
# Test-specific settings for the DAO layer
# Uses an in-memory HSQL database
jdbc.driverClassName=org.hsqldb.jdbcDriver
jdbc.username=sa
jdbc.password=
jdbc.url=jdbc:hsqldb:mem:airline