2012-09-29 15 views
11

He revisado la documentación para definir un bean. No estoy seguro de qué archivo de clase usar para una base de datos Mysql. ¿Alguien puede completar la definición de frijol a continuación?Cómo definir un bean de fuente de datos MySql a través de XML en Spring

<bean name="dataSource" class=""> 
    <property name="driverClassName" value="" /> 
    <property name="url" value="mysql://localhost/GameManager" /> 
    <property name="username" value="gamemanagertest" /> 
    <property name="password" value="1" /> 
</bean> 

Respuesta

38
<bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="jdbc:mysql://localhost:3306/GameManager" /> 
    <property name="username" value="gamemanagertest" /> 
    <property name="password" value="1" /> 
</bean> 

http://docs.spring.io/spring-data/jdbc/docs/1.1.0.M1/reference/html/orcl.datasource.html

+0

La URL que estaba mal. Lo arreglé. ¿Es realmente el nombre de usuario y la contraseña que el usuario configuró? De alguna manera lo dudo. – duffymo

+0

¿Qué pasa si alguien quiere usar la agrupación de conexiones? –

5

Utilice esta clase org.springframework.jdbc.datasource.DriverManagerDataSource-DriverManagerDataSource. Como una mejor práctica es mejor si aislamos los valores de la base de datos en un archivo .properties y lo configuramos en nuestra configuración del servlet xml de primavera. En el ejemplo siguiente, las propiedades se almacenan como pares clave-valor y accedemos al value usando el key correspondiente.

applicationContext-dataSource.xml:

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

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close"> 
    <property name="driverClassName" value="${jdbc.driverClassName}" /> 
    <property name="url" value="${jdbc.url}" /> 
    <property name="username" value="${jdbc.username}"/> 
    <property name="password" value="${jdbc.password}"/> 
    <property name="connectionCachingEnabled" value="true"/> 
</bean> 

<context:property-placeholder location="classpath:jdbc.properties"/> 

jdbc.propeties archivo:

jdbc.driverClassName=com.mysql.jdbc.Driver 
jdbc.url=jdbc:mysql://localhost:3306/sample_db 
jdbc.username=root 
jdbc.password=sec3ret 
+1

Sí, pero el uso de marcadores de posición de propiedad no era el objetivo, y simplemente complica el problema. Además, ¿por qué declaras tus beans de infraestructura en tu capa de presentación? Además, el uso de archivos de propiedades se está reemplazando mediante el uso de variables de entorno. – cyotee

+0

Sí, el archivo de propenes no es el punto, pero ¿dónde se puede ver la capa de presentación en mi respuesta y creo que el uso del archivo 'properties' es una buena práctica en lugar de editar la configuración xml http://stackoverflow.com/a/883910/ 1793718. Permite almacenar múltiples pares clave-valor y cómo usarías las variables de entorno en lugar de los archivos de propiedades. podrías darme un enlace? – Lucky

+0

["Esto es útil para permitir a la persona que implementa una aplicación personalizar las propiedades específicas del entorno (por ejemplo, URLs de base de datos, nombres de usuario y contraseñas), sin la complejidad o riesgo de modificar el archivo principal de definición XML o archivos para el contenedor." (http://docs.spring.io/spring/docs/2.5.x/reference/beans.html#beans-factory-placeholderconfigurer) – Lucky

Cuestiones relacionadas