Conexiones de Based de Datos Multiples con Spring 3

Hola amigos, disculpen por el tiempo que no postee, en mi trabajo me tenían muy ocupado.

Preliminar

Mostrare como se configura Spring para poder conectarse a múltiples bases de datos usando Spring 3.

Archivo de contexto de Spring

Primeramente definimos las conexiones disponibles en el archivo de contexto de Spring.



    
    
    ...
    
	
        
        
        
        
    

	
    
        
        
        
        
    
    ...

Dao para acceder al datasource de projectos.

Básicamente utilizaremos el patrón de interfase, implementación e inversión de control.

package edu.renan.samples;

import javax.sql.DataSource;
/**
 * To manage projects in our company.
 */
public interface ProjectsDao {

    /**
     * Sets a notes data source for this dao.
     * @param projectDataSource
     */
    public void setProjectsDataSource(DataSource projectDataSource);

    /**
     * list all projects...(je je this is just an example)
     */
    public Collection listAllProjects();
}
package edu.renan.samples;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import javax.sql.DataSource;
import java.util.Date;

@Component("projectsDao")
public class ProjectsDaoImpl implements ProjectsDao {

    private JdbcTemplate jdbcTemplate;

    @Autowired
    public void setProjectsDataSource(@Qualifier("projectsDataSource") DataSource projectsDataSource) {
        this.jdbcTemplate = new JdbcTemplate(projectsDataSource);
    }
	
    public Collection listAllProjects(){
        return this.jdbcTemplate.query( "select * from projects", new ProjectMapper());
    }
}

Tengo que resaltar que aqui estoy utilizando la anotación @Qualifier. Esta anotación nos permite explícitamente indicar que DataSource utilizar. y Listo!!!.

Bueno amigos eso seria todo por hoy, abajo pueden encontrar algunos links a recursos.

Recursos

7 thoughts on “Conexiones de Based de Datos Multiples con Spring 3

  1. Lalo Landa

    Buenas, no me queda claro como sería para usar dos DS, según entiendo el ejemplo sirve para usar la anotación “Qualifier” en vez de inyectarlo por archivos de configuración (ojo capaz que entendí mal).

    Salu2
    Muchas gracias !!

    Reply
    1. Renan Huanca Post author

      Hola Lalo,

      No disculpa, yo fui el que cometió el error.

      Me falto explicar que una vez que tienes un dao para acceder a una tabla de la base de datos, implicaría que en un servicio podrías tener dos daos, cada uno accediendo a una base de datos diferente. Completare el post este fin de semana.

      Muchísimas gracias.

      Reply
  2. Henry

    Buenas amigo, realizé la configuración que nos presentaste en el artículo pero me sale error. Solamente crea la instancia del primero, me sale error por que no existe las tablas del 2base en la 1ra, por favor podrías darme la mano ene eso

    Reply
  3. Diego

    Hola, gracias por el tutorial, queria consultar: como puedo conectarme a la misma Base de datos con diferentes user y pass, segun el usuario perfil.
    Saludos!!

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *