JDBC Persistence Layer Home Page


Dieser Persistenz Layer für JDBC-Datenbanken adressiert die folgenden zentralen Features:

  1. Ein generisches Transfermodell JDataSet ähnlich wie in ADO.NET "nicht typisierter DataSet".

  2. Eine XML-Beschreibungssprache, mit der ein solcher DataSet aus relationalen Datenbank zusammengestellt wird.

  3. Der Persistenzlayer stellt Methoden bereit, mit denen ein DataSet angefordert und verändert/ergänzt in die Datenbank wieder zurückgeschrieben wird.

Dieses Framework eignet sich vor allem für solche Projekte, bei denen sehr viel verschiedene Zugriffe von mittlerer Komplexität an die Datenbank gestellt werden und die Pflege großer Datenbestände in einer Vielzahl von Tabellen durch die Anwender im Vordergrund steht.

Tutorial   (PDF)

Folien - Präsentation  (PDF)

JavaDoc zu Persistenz-Layer und JDataSet.

JDataSet als Datenquelle für JasperReports.

Performanz

Mit einem Beispiel-Dataset wurde 10000 Datensätze als Dataset einzeln über den Persistenz-Layer geschrieben, gelesen und anschließend wieder gelöscht (macht also 30000 Dataset-Operationen).

4CPUs 3,2GHz, 8GB Memory:

Methodenaufrufe
/Sekunde

Methode

MySql
5.1
Innodb

MySql
5.5
Innodb

Postgres
9.2.1

Postgres
9.3

Postgres
9.4

MaxDB
7.8.02.28

MaxDB
7.9.08.18

Oracle
XE 11.2G[2]

HSQLDB
2.2.9
in-process

HSQLDB
2.2.9
HSQL Server

setDataset (insert)

857

760

844

1012

1109

1148

1818

760

3246

1414

setDataset (insert batch)

6060

6060[1]

10526[1]

15649[1]

39298[1]

20000[1]

27700[1]

28571[1]

28571

20000

getDataset (select)[3]

869

827

437

488

836

790

901

406

2583

768

getDataset (ehcache select)[3]

9259

9615

13898

27778

13888

9523

30300

7299

9345

9259

setDataset (delete)

569

547

259

368

601

558

539

267

3039

602

[1] Optimiert max. Inserts/Sekunde MySql 5.5: 33000; MaxDB: 52000; Oracle XE: 99844
[2] Oracle XE ist auf eine CPU limitiert.
[3] Ein Dataset mit fünf Tabellen; für die Anzahl der Select-Statements die Zahlen in dieser Zeile also mit 5 multipizieren.

Software License

GNU Lesser General Public License


updated 19.11.2015