As we saw in the previous chapter, the Data Access Object ( DAO ) pattern can be
used to hide the unique implementation peculiarities of data-related API s to pro-
vide a simple and common API for application developers. This pattern is very
powerful, and is not unique to i BATIS , as other projects have created DAO imple-
mentations that you can use with i BATIS .
In this chapter, we look at a couple more SQL -based DAO implementations, as
well as a couple of DAO implementations for other data sources ( LDAP and web
services). Then we explore the other options for DAO layers, including the Spring
framework's excellent DAO implementation. We also consider the implications of
creating your own custom DAO layer.
11.1 Non-SQLMap DAO implementations
In the last chapter, we defined an interface for a DAO , and then built a SQL
Map-based implementation of it. In the next two sections, we implement that
interface again with both Hibernate and JDBC to show you how the DAO pat-
tern can make it easier to use different database access technologies with i BATIS
in your application.
A Hibernate DAO implementation
The Hibernate DAO implementation is very different from the SQL Map version,
but because of the DAO interface, it is used in exactly the same manner as far as
the application code that uses it is concerned.
Defining the DAO context
Listing 11.1 shows the XML fragment that we need in the Dao.xml file to describe
the DAO context that will use Hibernate.
XML fragment defining a DAO context using Hibernate