Java Reference
In-Depth Information
se. It is a
SQL
Mapper. The difference is that i
BATIS
does not know or care about the
mappings between classes and database tables. Therefore there is no requirement
that the sub maps use a class that extends from the class referenced in the parent
result map. In other words, you're free to use discriminators however you like, for
whatever purpose seems natural. Of course, inheritance is an obvious application,
but you may find other situations where discriminators come in handy.
6.4 Other miscellaneous uses
The i
BATIS
framework is designed to be flexible. The
<statement>
mapped state-
ment type is another way to open more doors for uses that may not be possible
using the other mapped statement types.
6.4.1
Using the statement type and DDL
The
<statement>
type is a bit of an oddball in that unlike all of the other types
(
<insert>
,
<update>
,
<delete>
, and
<select>
) it has no corresponding method to
call it with. That is a hint: the use of
<statement>
is not encouraged, and it should
be employed only as a last resort.
Data Definition Language (
DDL
) is a subset of
SQL
statements that are used to
define the structure of a database schema. You would use
DDL
to define tables
and indexes, and to perform other operations that do not change the data, but
change the data structure instead.
Although using
DDL
is officially unsupported, your database may allow you to
execute
DDL
statements via i
BATIS
using the
<statement>
type. The Postgre
SQL
database, for example, allows using the
<statement>
type to create and drop data-
base tables:
<statement id="dropTable">
DROP TABLE Account CASCADE;
</statement>
sqlMap.update("Account.dropTable", null);
There are no guarantees that your database will support running
DDL
statements
this way, but if so, it can be useful for writing routines that create or modify data-
base structures.
In the next section, we look at one of the features of i
BATIS
that makes it very
flexible but that is often overlooked: row handlers.



