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

JDBC Java Discussion :

[Visibilité méthode][DbUtils] QueryRunner et PreparedStatement


Sujet :

JDBC Java

  1. #1
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut [Visibilité méthode][DbUtils] QueryRunner et PreparedStatement
    bonjour,

    voilà c'est sûrement une question très bête mais je n'arrive pas à m'en dépatouiller ...

    je crée une classe pour effectuer des choses assez simple sur une base de données. J'ai donc voulu me servir de l'API DbUtils des Jakarta Commons histoire de découvrir ça.

    J'essaie d'appeler la méthode prepareStatement(String sql) qui est sensée me retourner un PreparedStatement mais Eclipse me dit que cette méthode (notée protected dans l'API) n'est pas visible. Que dois-je faire ?

    Voici mon code (en light) :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    public class ConnectionDB {
    
        /** Connexion */
        private Connection conn;
        
        /** Gestionnaire de requete */
        private QueryRunner qRunner;
        
        /** PreparedStatement pour exécution requetes */
        private PreparedStatement pstmt;
        
        /**
         * Constructeur
         * 
         * @param user		Nom d'utilisateur de la base de données
         * @param passwd	Mot de passe correspondant
         */
        private ConnectionDB(String user, String passwd, String dbName) throws Exception{
        	
        	...
            	boolean driverLoaded = DbUtils.loadDriver(driver);
            	if(!driverLoaded){
            		logger.error("[ERROR] Erreur lors du chargement du driver.");
            		throw new Exception("Erreur de chargement du driver.");
            	}
            ...
            		
        		//établissement de la connexion au SGBD
        		conn = DriverManager.getConnection(url+":"+dbName, user, passwd);
          	
        		// préparation d'un gestionnaire de requête
        		qRunner = new QueryRunner();
        		logger.info("[INFO] Connexion à la base de données établie.");
            }
    
        }//constructeur
    	
        
        
        public void setPreparedStatement(String sql){
        	pstmt = qRunner.prepareStatement(conn,sql); // ICI !!
        }//getPreparedStatement
        
        
    
    }//class
    [EDIT] PS : idem avec la méthode fillStatement évidemment ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    Pour faire une requête tu es censé utiliser les méthodes query(...), le QueryRunner fait le boulot de créer le Statement et de le remplir (c'est l'interêt du bidule )

  3. #3
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    ha ben la javadoc le dis pas ....

    du veux dire que je passe en param à la méthode query un truc directement style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO table (clo1,col2) VALUES (?,?)
    mais alors comment je fais pour lui passer les valeurs ? ya un truc que je pige pas ...

    t'as un bout de code sous la main ?

    [EDIT] Non c'est bon je viens de capter .... par contre je vois pas l'intéret, il va me refaire le preparedStatement à chaque fois, donc ça sert à quedal

    A moins qu'il le garde en mémoire quelque part ... ?

    Bon je regarde un peu mieux la prochaine fois, promis
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. visibilité d'une méthode
    Par guti11 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 08/07/2013, 12h46
  2. Réponses: 17
    Dernier message: 14/01/2011, 16h56
  3. Visibilité des classes et de méthodes, différence?
    Par stephane543 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 12/08/2009, 17h55
  4. Visibilité de la méthode d'une classe
    Par alicia26 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/05/2007, 13h46
  5. Restreindre la visibilité d'une méthode
    Par Bicnic dans le forum Langage
    Réponses: 5
    Dernier message: 26/05/2006, 20h45

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