.NET in more detail in appendix. i BATIS has been implemented for Ruby as well,
but Ruby is a significantly different language, and therefore i BATIS for Ruby is
quite different as well. We'll not discuss the Ruby implementation here.
In addition to Java and C#, the i BATIS team has discussed implementing i BATIS
in other languages, including PHP 5 and Python. We believe that i BATIS can con-
tribute significant value to almost any platform where the choices are limited to a
low-level database API and a high-level object/relational mapping tool. i BATIS can
fill the middle ground and again allow you to implement all of your applications
in a consistent way across the board.
We've also discussed drafting a specification that would make it easier to
migrate i BATIS to different platforms and ensure reasonable consistency. Of
course, we'd like i BATIS to take full advantage of unique language and platform
features, but we'd also like to see some level of similarity to ensure that they can
all be called i BATIS and be recognizable to developers experienced with i BATIS in
In this chapter you learned that i BATIS is a unique data mapper that uses an
approach called SQL mapping to persist objects to a relational database. i BATIS is
consistently implemented in both Java and .NET , and there is significant value in a
consistent approach to persistence in your applications.
You also learned how i BATIS works. Generally, under the hood i BATIS will run
well-written JDBC or ADO.NET code that would otherwise be hard to maintain
when coded manually. You found that when compared to JDBC , i BATIS code is less
verbose and easier to code.
We discussed how i BATIS , despite its simple design, is a very appropriate frame-
work for both small and large enterprise applications alike. i BATIS has many fea-
tures that support enterprise-level persistence requirements. Features such as row
handlers allow large data sets to be processed efficiently, one record at a time, to
ensure that you don't completely drain the system memory.
We also discussed a number of important features that distinguish i BATIS from
the competition, and we made a strong case for using i BATIS . These features
include the following: