The <ibatorContext> Element

The <ibatorContext> element is used to specify the environment for
generating a set of objects. Child elements are used to specify the database
to connect to, the type of objects to generate, and the tables to introspect.
Multiple <ibatorContext> elements can be listed inside an
<ibatorConfiguration>
element to allow generating objects from different
databases, or with different generation parameters, in the same run of Ibator.

Required Attributes

Attribute

Description

id

A unique identifier for this context. This value will be used in some
error messages.

Optional Attributes

Attribute

Description

defaultModelType

This property is used to set the default for generated model types.
The model type defines how Ibator will generate domain classes. With some
model types Ibator will generate a single domain class for each table,
with others Ibator may generate different classes depending on the structure
of the table. The property supports these values:

conditional

This is the default valueThis model is similar to the hierarchical model except that a separate
class will not be generated if that separate class would only contain
one field. So if a table has only one primary key field, that field
will be merged into the base record class.

flat

This model generates only one domain class for any table. The class
will hold all fields in the table.

hierarchical

This model is the same as the model shipped with the initial versions
of Ibator. This model will generate a primary key class if the table has
a primary key, another class that holds any BLOB columns in the table, and
another class that holds the remaining fields. There is an appropriate
inheritance relationship between the classes.

targetRuntime

This property is used to specify the runtime target for generated code.
The property supports these special values:

Ibatis2Java2

This is the default valueWith this value, Ibator will generate objects that are compatible
with iBATIS versions 2.2.0 and higher, and all levels of Java 2.
The "by example" methods in these generated objects support virtually
unlimited dynamic where clauses. The objects generated with
this set of generators are not 100% compatible with the
objects generated with the original version of Abator, or one
of the other sets of code generators.

Ibatis2Java5

With the value, Ibator will generate objects that are compatible
with iBATIS versions 2.2.0 and higher, and JSE 5.0 and higher (e.g. the
Java model and DAO classes will use generic types).
The "by example" methods in these generated objects support virtually
unlimited dynamic where clauses. Additionally, the Java objects
generated with these generators support many JSE 5.0 features including
parameterized types and annotations. The objects generated with
this set of generators are not 100% compatible with the
objects generated with the original version of Abator, or one
of the other sets of code generators.

If you want to create a different code generator in entirety,
then use this value to specify the fully qualified name of a
class that extends org.apache.ibatis.ibator.api.IntrospectedTable.
With this, you can create your own code generator and plug
it in to the Ibator engine. See the
Extending Ibator page for more information.

introspectedColumnImpl

Use this value to specify the fully qualified name of a
class that extends org.apache.ibatis.ibator.api.IntrospectedColumn.
This is used if you want to change the behavior of the code generators
when calculating column information. See the
Extending Ibator page for more information.

Supported Properties

This table lists the properties that can be
specified with the <property> child element:

Property Name

Property Values

suppressTypeWarnings

If true, then Ibator will add an annotation to any method
that uses a non-parameterized type to suppress compiler type warnings.
This is useful if you are using the Ibatis2Java2 targetRuntime, but are
compiling the generated objects with a JSE 5.0 compiler. In that situation,
the Ibator generated code would generate many compiler warnings if the
annotation is not allowed. This property is not needed and will have
no effect when using the Ibatis2Java5 targetRuntime.

The default value is false.

beginningDelimiter

The value to use as the beginning identifier delimiter for SQL identifiers that
require delimiters. Ibator will automatically delimit SQL identifiers if the
identifier contains a space. Ibator will also delimit SQL identifiers if
specifically requested in a <table> or <columnOverride> configuration.

The default value is double quotes (").

endingDelimiter

The value to use as the ending identifier delimiter for SQL identifiers that
require delimiters. Ibator will automatically delimit SQL identifiers if the
identifier contains a space. Ibator will also delimit SQL identifiers if
specifically requested in a <table> or <columnOverride> configuration.