JingDAO Tutorial

Welcome to the JingDAO Tutorial. In this section, we'll explore many of the different features and programming practices available in JingDAO. The tutorial has the following sections:

  • Basic Usage : The very basics of setting up JingDAO
  • Context Configuration : Exploring the configuration options
  • Resolvers : Using DAO Resolvers (allows JNDI lookups and more)
  • DAO Configuration : how to do per-DAO configuration
  • Environments : How to use JingDAO in various environments
  • Writing Daos : Tips and thoughts on DAO Implementation

WARNING: The tutorial is still under development.

Setting Up The Tutorial

Many of the tutorials take advantage of the unit tests included in the JingDAO source. Others include seperate source and configuration data. In either case, there are some basic tools you'll need to compile and run the JingDAO examples:

  • Maven : Maven is a Java project management tool and can be used to build the JingDAO binaries.

Note: a maven-style repository has been set up at jadetower.org/dist to assist in maven builds. You can add this to your remote repository list by including the following line in your maven build.properties file in your home directory:

maven.repo.remote=http://jadetower.org/dist/,http://ibiblio.org/maven
     

Overview of Terms

Before we start, let's define some common terms:

Term Definition
Inversion of Control (IoC) Inversion of control is a design pattern in which component control (invocation, lifecycle, dependencies, configuration) is specifically handled by a container or framework and not by the component itself. Generally requires components to access each other only on an interface (or "service") level, not at an implementation level.
Seperation of Concerns (SoC) A design pattern which encourages components to focus on only a single task.
Interface Driven Design A design pattern in which interaction between objects or components happens strictly at a interface level. Components never access another component implementation.
Data Access Object (DAO) a design pattern which "allows data access mechanisms to change independently of the code that uses the data."
Avalon A component framework for the Java platform which supports IoC and SoC programming. Avalon provides a base framework plus several container implementations. JingDAO uses the base Avalon framework to provide configuration and lifecycle support.
PicoContainer A very simple (that's a good thing) IoC container. It is used internally by the JingDAO DaoManagers.