Structured Query Language ( SQL ) has been around for a long time. It's been
over 35 years since Edgar F. Codd first suggested the idea that data could be nor-
malized into sets of related tables. Since then, corporate IT has invested billions
of dollars into relational database management systems ( RDBMS s). Few software
technologies can claim to have stood the test of time as well as the relational data-
base and SQL . Indeed, after all this time, there is still a great deal of momentum
behind relational technology and it is a cornerstone offering of the largest soft-
ware companies in the world. All indicators suggest that SQL will be around for
another 30 years.
i BATIS is based on the idea that there is value in relational databases and SQL ,
and that it is a good idea to embrace the industrywide investment in SQL . We have
experiences whereby the database and even the SQL itself have outlived the appli-
cation source code, and even multiple versions of the source code. In some cases
we have seen that an application was rewritten in a different language, but the
SQL and database remained largely unchanged.
It is for such reasons that i BATIS does not attempt to hide SQL or avoid SQL . It
is a persistence layer framework that instead embraces SQL by making it easier to
work with and easier to integrate into modern object-oriented software. These
days, there are rumors that databases and SQL threaten our object models, but
that does not have to be the case. i BATIS can help to ensure that it is not.
In this chapter, we will look at the history and rationale for i BATIS , and discuss
the forces that influenced its creation.
1.1 A hybrid solution: combining the best of the best
In the modern world, hybrid solutions can be found everywhere. Taking two seem-
ingly opposing ideas and merging them in the middle has proven to be an effective
means to filling a niche, which in some cases has resulted in the creation of entire
industries. This is certainly true of the automotive industry, as most of the innova-
tion in vehicle designs has come from mixing various ideas. Mix a car with a cargo
van and you have the ultimate family minivan. Marry a truck with an all-terrain
vehicle, and you have an urban status symbol known as a sport utility vehicle. Cross
a hotrod and a station wagon and you have a family car that Dad isn't embarrassed
to drive. Set a gasoline engine side by side with an electric motor, and you have the
answer for a great deal of the North American pollution problem.
Hybrid solutions have proven effective in the IT industry too. i BATIS is one
such hybrid solution for the persistence layer of your application. Over time, vari-
ous methods have been developed to enable applications to execute SQL against a