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 ...