Java Reference
In-Depth Information
dataSource = new SimpleDataSource(map);
}
public DataSource getDataSource() {
return dataSource;
}
}
As we've said before, more complex DataSource implementations might take a lot
more work, but we hope that never becomes an issue you need to worry over.
The final topic we will cover in extending iBATIS is customizing your transac-
tion management.
12.5 Customizing transaction management
iBATIS offers a number of transaction options, as you've read in earlier chapters.
However, there is always room for customization with today's wide range of appli-
cation servers and custom approaches to transaction management. From the out-
side, transactions seem simple, offering only a few functions: start, commit, roll
back, and end. But on the inside, transactions are very complex and are one of
the behaviors of application servers that tend to deviate from the standard. For
that reason, iBATIS allows you to customize your own transaction management sys-
tem. If you've had any experience in the area, that statement probably sent shivers
down your spine—and so it should. Implementing a transaction manager cor-
rectly is a terribly difficult thing to do. For that reason, we won't even bother tack-
ling a true implementation here. Instead, we'll discuss the interfaces in detail,
which will help you gain a head start should you ever be tasked with implement-
ing them. If you do want an example, iBATIS comes with three implementations:
JDBC , JTA , and EXTERNAL . Table 12.4 summarizes these, in case you missed them
in previous chapters.
Table 12.4
Built-in transaction manager configurations
Implementation
Description
Uses the transaction facilities provided by the JDBC Connection API
JdbcTransactionConfig
JtaTransactionConfig
Starts a global transaction, or joins an existing global transaction
“No-op” implementation of commit and rollback, thus leaving com-
mit and rollback to some external transaction manager
ExternalTransactionConfig
Search WWH ::




Custom Search