IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

JdbcTemplate + DriverManagerDataSource


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 37
    Par défaut JdbcTemplate + DriverManagerDataSource
    Bonjour,
    je débute en Spring et j'ai quelques questions ...
    dans mon fichier applicationContext, je déclare ma dataSource comme ce ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    	<!-- beans datasource -->
    	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      			<property name="driverClassName">
        			<value>com.sybase.jdbc2.jdbc.SybDriver</value>
      			</property>
      			<property name="url">
        			<value>jdbc:sybase:Tds:xxx.xxx.xxx.xxx:xxxx/dbParameter</value>
      			</property>
      			<property name="username">
        			<value>xxxx</value>
      			</property>
      			<property name="password">
        			<value>xxxx</value>
      			</property>
    	</bean>
    dans le meme fichier je charge ma classe d'implémantation de ma DAO et je lui passe ma "dataSource":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <!-- L'implémentation de la couche d'access aux données -->
    	<bean id="maClasseImpl" class="xxx.dao.MaClasseImpl" >
    		<property name="dataSource">
    			<ref local="dataSource"/>
    		</property>
    	</bean>
    ma question est la suivante :
    j'ai besoin d'une instance de JdbcTemplate dans ma classe "MaClasseImpl", et pour celà j'ai besoin d'une instance de ma "dataSource".
    comment faire pour avoir cette instance ?

    voici le code de ma classe "MaClasseImpl" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class MaClasseImpl implements MaClasse{
     
     
    JdbcTemplate jdbcTemplate = new JdbcTemplate((DriverManagerDataSource) new DefaultListableBeanFactory().getBean("dataSource"));
     
    ...................
    }
    ou bien suffit juste d' un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class MaClasseImpl implements MaClasse{
     
    private DriverManagerDataSource ds;
    JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);
     
    ...................
    }
    Autre question, faut il que je crée une classe java de type DriverManagerDataSource ?
    je trouve aucune méthode dans la classe JdbcTemplate pour fermer la connexion aprés ma requéte...
    Merci d'avance.

    Modéré par zekey : Pensez aux balises codes svp

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    Je connais pas JdbcTemplate mais je verrais bien
    tu définis déjà DriverManagerDataSource comme étant le bean nommé DataSource .(ce que tu as fait) Et je définirais ton JdbcTemplate en bean dans ton applicationContext

    Utilise l'injection,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <bean id="jdbcTemplate" class="xxx.xxx.JdbcTemplate " >
    <property name="dataSource">
    <ref local="dataSource"/>
    </property>
    </bean>
     
    <bean id="maClasseImpl" class="xxx.dao.MaClasseImpl" >
    <property name="jdbcTemplate">
    <ref local="jdbcTemplate"/>
    </property>
    </bean>
    et dans ton maClasseImpl tu as uniquement un attribut jdbdTemplate et le getter / setter sur ton attribut

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 37
    Par défaut
    Merci Alexandre.
    je vois bien ce que tu veux dire, le seul truc qui me géne, c'est que j'aimerais gérer mon JdbcTemplate au niveau applicatif : j'ouvre la connexion quand je veux et je la ferme quand je veux...
    j'ai regardé dans la classe JdbcTemplate, et je n'ai trouvé aucune méthode pour fermer la connexion, est ce normal ?
    quelqu'un a une idée...
    je vous remercie de votre aide.

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    ca me semblerait bizzard de devoir faire explicitement ces traitements ...(de nos jours)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 37
    Par défaut
    Merci alexandre.
    pourquoi c'est bizard ?
    je trouve tout à fait normal de fermer une connexion à la base aprés chaque requete...

  6. #6
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 2
    Par défaut
    C'est l'avantage de la partie JDBC Tempate, la gestion pour vous de toute la partie connexion et la remontée des erreurs possible

Discussions similaires

  1. [Data] [Transaction] HibernateDaoSupport + JdbcTemplate
    Par El Saigneur dans le forum Spring
    Réponses: 3
    Dernier message: 05/05/2009, 00h17
  2. HibernateTemplate, JdbcTemplate ou JPA
    Par yLaplace dans le forum Hibernate
    Réponses: 10
    Dernier message: 25/02/2009, 17h02
  3. Réponses: 8
    Dernier message: 05/10/2007, 10h56
  4. [Data] [jdbcTemplate] Utiliser les PreparedStatements
    Par ::Fistons dans le forum Spring
    Réponses: 5
    Dernier message: 31/08/2007, 10h44
  5. [Data] la classe JdbcTemplate
    Par linniesurf dans le forum Spring
    Réponses: 4
    Dernier message: 09/02/2007, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo