Вы находитесь на странице: 1из 2

3.2.5. Spring DAO Support.

Una aplicacin tpica Spring deber implementar una capa DAO responsable de la persistencia
de los objetos en la base de datos sin importar la tecnologa a utilizar; para ello podramos
tener una clase tal como se muestra en la siguiente figura:
public class JdbcAppDao implements AppDao {

private JdbcTemplate jdbcTemplate;


public void setJdbcTemplate (JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void saveMotorist(Motorist motorist) { .. }
}
Lo visto en la figurar anterior no es un problema complicado si es que slo poseemos un solo
DAO (Ejem: JDBC), pero si deseamos implementar mltiples DAO, podramos incurrir en
cantidad importante de lneas de cdigo repetidas.
Una solucin para este problema podra ser la creacin de una clase padre comn para
todos los objetos DAO donde resida la propiedad JdbcTemplate, posteriormente todas las
clases DAO que extiendan esta clase podran usar esta propiedad para acceder a los datos.
JdbcDaoSupport
jdbcTemplate: JdbcTemplate

JdbcAppDao

La idea de crear una clase base DAO, es inicializar el valor del atributo jdbcTemplate y que el
mismo pueda ser heredado por las clases hijas con tal slo extender la clase padre.
public class JdbcAppDao extends JdbcDaoSupport implements AppDao {
public void saveMotorist(Motorist motorist) {
getJdbcTemplate().update(..);
}
}

Ahora, nuestro applicationContext.xml quedara de la siguiente manera:


<bean id="jdbcAppDao" class="com.spring.myjdbc.JdbcAppDao">
<property name="dataSource" ref="dataSource"/>
</bean>
Ahora, inyectando una referencia del dataSource a nuestra clase, ella podr invocar al
mtodo getJdbcTemplate() y obtener la instancia correspondiente. Esto elimina la necesidad
de declarar un atributo de tipo JdbcTemplate en todas nuestras clases.

Вам также может понравиться