web-dev-qa-db-fra.com

Comment définir un bean de source de données MySql via XML dans Spring

J'ai parcouru la documentation pour définir un bean. Je ne sais pas quel fichier de classe utiliser pour une base de données Mysql. Quelqu'un peut-il remplir la définition du bean ci-dessous?

<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>
14
Robert Greathouse

Les deux réponses conviennent à la question. Mais juste pour un info si vous allez utiliser DriverManagerDataSource comme source de données, chaque appel à votre bean de source de données créera une nouvelle connexion à votre base de données qui n'est pas recommandé pour la production et même il ne regroupe pas les connexions.

Si vous avez besoin d'un pool de connexions, pensez à Apache Commons DBCP .

<bean name="dataSource" class="org.Apache.commons.dbcp.BasicDataSource">
    <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" />
    <property name="initialSize" value="2" />
    <property name="maxActive" value="5" />
</bean>

initialSize et maxActive sont des propriétés liées au pool.

Pour l'utiliser, assurez-vous d'avoir le bocal requis sur votre chemin.

6
TechnocratSid
<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

41
Robert Greathouse

Utilisez cette classe org.springframework.jdbc.datasource.DriverManagerDataSource - DriverManagerDataSource . En tant que meilleure pratique, il est préférable d'isoler les valeurs de la base de données dans un .properties fichier et configurez-le dans notre configuration xml de servlet de printemps. Dans l'exemple ci-dessous, les propriétés sont stockées sous forme de paires clé-valeur et nous accédons à value en utilisant le key correspondant.

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 fichier:

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