Conexión Spring JDBC sin dataSource

Había leído varios artículos sobre cómo obtener Connection usando Spring DataSource.

Pero en nuestra configuración de empresa, el objeto de conexión se obtiene a través de un entorno ya configurado. Siguiendo el código de muestra:

 String pool = PropertyFileReader.getPropertyValue("database.properties", "development.connectionPool");

    Connection connection = RequestUtils.getConnection(pool);

Por lo tanto, después de leer esto tutoriales

Estoy confundido al usar JDBCTemplate usando el objeto de conexión del código anterior.

preguntado el 04 de julio de 12 a las 10:07

¿No puedo explicar la pregunta o el problema correctamente? -

2 Respuestas

Creo que JdbcTemplate no está diseñado para funcionar contra una conexión como esperaba. Como solución alternativa, si está bien para crear un JdbcTemplate separado para cada conexión que creó, puede envolver su conexión en un contenedor delgado de DataSource y enviarlo a JdbcTemplate.

Creo que debería funcionar, pero no lo he probado de todos modos...

class SingleConnectionDataSource implements DataSource {
    private Connection connection;
    public SingleConnectionDataSource(Connection connection) {
        this.connection = connection;
    }

    public Connection getConnection() {
         return this.connection;
    }
    public Connection getConnection(String username, String password) {
         return this.connection;
    }
}

// at the place you want to use JdbcTemplate
Connection conn = blablabla;  // your own way to get it
JdbcTemplate jdbcTemplate = new JdbcTemplate(new SingleConnectionDataSource(conn));

Respondido 10 Jul 12, 10:07

En realidad, Spring ya proporcionó la implementación de SingleConnectionDataSource (lo he visto en la versión 4.1.7).

Incluso permite suprimir el cierre de conexiones por plantilla.

Respondido 17 Feb 16, 13:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.