A client-server bank program, which uses JDBC to persist data in a database. This example illustrates the following.
JDBC usage
Using an integration layer for database access in a layered architecture
The Database Access Object (DAO) pattern
The Data Transfer Object (DTO) pattern
Race condition problems when multiple clients update server state