Impossible de récupérer des données à une DB Oracle
Bonjour,
J'ai un projet qui consite à la gestion d'une base de donnée Oracle via un interface web. J'utilise le serveur d'application Jboss et je me connecte à la base de donnée via une DataSource.
Voici mon code de connexion :
Fichier InitDB (Servlet de connexion)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public void init(ServletConfig config) throws ServletException {
super.init(config);
try{
Connection dbc = OracleConnexion.getConnection();
System.out.println("dbc = "+dbc);
if(dbc==null) {
System.out.println("connexion impossible");
}
else {
AdministratorDB.setConnection(dbc); //connection to the table Administrator
System.out.println("connexion réussi");
}
}
catch(Exception e){
System.out.println("erreur lors du chargement de InitDB "+e);
}
} |
Fichier OracleConnexion
Code:
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
| public class OracleConnexion {
protected static String username;
protected static String password;
protected static DataSource ds;
protected static ArrayList<Connection> poolConnect = new ArrayList<Connection>();
static {
username = ApplicationProperties.getDatasourceUserId();
password = ApplicationProperties.getDatasourcePassword();
ds = getDataSource();
}
public static DataSource getDataSource() {
try{
InitialContext context = new InitialContext();
ds = (DataSource)context.lookup(ApplicationProperties.getDatasourceJndiName());
//recherche de lobjet DataSource dans lannuaire JNDI
}
catch (javax.naming.NamingException ne) {
System.out.println("erreur de nom : "+ ne);
ne.printStackTrace();
}
return ds;
}
public static Connection getConnection() {
try {
System.out.println("debut connexion");
Connection dbc = ds.getConnection(username,password);
System.out.println("connexion = "+dbc);
poolConnect.add(dbc);
return dbc;
}
catch(Exception e) {
System.out.println("erreur de connexion "+e);
e.printStackTrace();
return null ;
}
} |
D'après la console, je me connecte tres bien à la DB vu qu'elle m'affiche ceci :
Code:
1 2 3 4
| 16:33:32,959 INFO [STDOUT] debut connexion
16:33:33,361 INFO [STDOUT] connexion = org.jboss.resource.adapter.jdbc.WrappedConnection@c6a26b
16:33:33,362 INFO [STDOUT] dbc = org.jboss.resource.adapter.jdbc.WrappedConnection@c6a26b
16:33:33,380 INFO [STDOUT] connexion réussi |
Le problème survient lorsque j'appelle la methode logAdmin qui va executer une bête requête
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| try{
HttpSession session = request.getSession();
String nickname = beanAdministratorForm.getNickname();
String password = beanAdministratorForm.getPassword();
int idAdmin = AdministratorDB.logAdmin(nickname, password);
if( idAdmin != 0){
session.setAttribute("id",""+idAdmin);
forward = mapping.findForward("connectionsuccess");
}
else{
System.out.println("erreur log, retour case départ !");
errors.add("badlog", new ActionMessage("loging.badusernameandpassword"));
forward = mapping.findForward("connectionfailed");
}
}
catch (Exception e){
e.printStackTrace();
System.out.println("erreur de log : "+e);
} |
code de la méthode logAdmin
Code:
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
| public static int logAdmin (String nickname, String password){
erreur = null;
int idAdmin = 0;
try{
String req = "select id_administrator from administrator where nickname = ? and password = ?";
PreparedStatement pstm = dbConnect.prepareStatement(req);
System.out.println("requete = "+req);
pstm.setString(1,nickname);
pstm.setString(2,password);
ResultSet rs = pstm.executeQuery();
if(rs.next()){
idAdmin = rs.getInt(1);
}
else {
idAdmin = 0;
}
pstm.close();
}
catch (Exception e){
erreur = e;
System.out.println("erreur de login : "+erreur);
}
return idAdmin;
} |
La console ne me sort aucune exception, juste les println que je reçois.
Code:
16:38:03,207 INFO [STDOUT] erreur log, retour case départ !
Je rentre pourtant dans mes champs de ma jsp des données correctes qui se trouvent dans ma DBn donc je ne sais pas d'où pourrait venir le problème.
Merci d'avance pour ceux qui répondront.
Dasson
P.S. : Je ne sais pas si je devais mettre ce post dans le JDBC ou autre part (JBOSS ou Oracle ou Struts) donc désolé si je me suis trompé.