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 value
This 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 value
With 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.

Child Elements

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.

The default value is double quotes (").