Transaction support is available in iBATIS. You can demarcate your transactions directly with the sqlmap. iBATIS is also open enough to allow for sqlmap transactions to be managed by other frameworks like Spring.
Here is an example of direct sqlmap transaction management:
public updateItemDescription (
String itemId, String newDescription)
throws SQLException {
try {
sqlMap.startTransaction ();
Item item = (Item) sqlMap.queryForObject ("getItem", itemId);
item.setDescription (newDescription);
sqlMap.update ("updateItem", item);
sqlMap.commitTransaction ();
} finally {
sqlMap.endTransaction ();
}
}