Bienvenido a re-orientation! Esperamos que encuentres lo que buscas

El datasource-config.xml. Configurando Spring JDBC


Parte del manual paso a paso para desarrollar una aplicación web con Spring Framework + Spring Security contra una base de datos MySQL.

Para gestionar los accesos a la Base de Datos nos apoyaremos en Spring JDBC. Este framework se encargará de gestionar por nosotros las aperturas y cierres de conexiones, preparación y ejecución de los statements, la captura de exceptions asociadas, el manejo de transacciones, así como los cierres de statement/resultset.

Una vez definamos los parámetros de conexión.Sólo necesitaremos encargarnos de especificar los SQL statement, declarar y proveer los parámetros asociados a estos, e implementar para cada iteración del resultset lo que necesitemos hacer.

Definición de parámetros de conexión

Los parámetros de conexión los declararemos en el fichero datasource-config.xml, bajo la ruta: app01/src/main/resources/spring/, junto al resto de ficheros de configuración de Spring.

En este fichero se declaran las fuentes de datos que vamos a usar, en nuestro será el bean con id="dataSource", que es la fuente de datos que hemos referenciado desde la declaración de nuestro CustomJdbcDaoImpl en el security-context.xml.

En nuestro ejemplo se trata de una BDD MySQL. La declaración de la fuente de datos quedaría así:

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
          p:driverClassName="${jdbc.driverClassNameMySql}" p:url="${jdbc.urlMySql}"
          p:username="${jdbc.usernameMySql}" p:password="${jdbc.passwordMySql}"/>

Todo lo marcado por ${...} será sustituido por los valores que hemos definido en un fichero de propiedades asociado data-access.properties de estructura clave=valor que crearemos tambien bajo la ruta: app01/src/main/resources/spring/. Esto lo indicamos con la línea siguente:

<context:property-placeholder location="classpath:spring/data-access.properties"/>  

Los ficheros de acceso a datos quedarían así:

datasource-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:jdbc="http://www.springframework.org/schema/jdbc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context.xsd
         http://www.springframework.org/schema/jdbc
         http://www.springframework.org/schema/jdbc/spring-jdbc.xsd">

    <context:property-placeholder location="classpath:spring/data-access.properties"/>

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
          p:driverClassName="${jdbc.driverClassNameMySql}" p:url="${jdbc.urlMySql}"
          p:username="${jdbc.usernameMySql}" p:password="${jdbc.passwordMySql}"/>
    
</beans

data-access.properties

#-------------------------------------------------------------------------------
# MySQL Settings
jdbc.driverClassNameMySql=com.mysql.jdbc.Driver
jdbc.urlMySql=jdbc:mysql://127.0.0.1:3306/demodb
jdbc.usernameMySql=scott
jdbc.passwordMySql=tiger

# Properties that control the population of schema and data for a new data source
jdbc.initLocationMySql=classpath:db/mysql/initDB.txt
jdbc.dataLocationMySql=classpath:db/mysql/populateDB.txt

# Property that determines which database to use with an AbstractJpaVendorAdapter
jpa.databaseMySql=MYSQL
jpa.showSqlMySql=true

Para más información: http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html

Terminos Tecnología: