Project Description

This project is intended to provide Java software developers with an easy-to-use development tool for automatically generating database wrapper classes based on the Structured Query Language (SQL) script file that defines the database schema. Database wrapper classes mirror the database tables, and are used to retrieve data from and write modified data to the database.

By wrapping database access in a set of object classes we are able to treat the database as objects and not have to concern ourselves with the database-specific access details hidden in the objects. This methodology provides a couple of benefits: firstly, it provides a layer of abstraction between the database system and the application logic, which allows software developers to separate the application logic from the database access code, which in turn makes maintenance of the code base easier because it more modular and the code is grouped logically by the functions it performs; secondly, it allows the underlying database technology to be changed while insulating the application logic from those changes.

The goal of this project is to build a Java-based open source software development tool that is able to:

  • Parse and interpret SQL schema definition files: many Database Management Systems (DBMS) often stray from the SQL 1999 standard and implement their own proprietary data types and SQL constructs. The parsing engine should correctly handled and interpret these custom elements.
  • Generate and write to disk wrapper classes: Java classes should be generated based on the tool's interpretation of the SQL schema definition file. The classes should utilise the JDBC Application Programming Interface (API), and be compatible with JDBC Type 4 drivers . All wrapper classes generated should be encapsulated in a user-specified package.

The life of this development tool is planned to extend beyond that of the honours paper project.