Bonjour, j'ai fait un programme qui se connecte à une base de données etqui permet d'éxecuter des requetes sql. La base est une base oracle. Mon problème c'est que mes requetes ne renvoient pas de ResultSet !!
Je précise que mes requetes marchent quand je les tape à l'identique sous sqlplus et que la connexion à la base de données fonctionne sans problèmes.
voici une partie de la classe session qui gère les acces à la base :
à l'origine il y'à plus de méthodes que cà mais meme sur ce bout de code la fonction "listeEmployes" ne marche pas.je la teste avec un ptit mai :
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
47
48
49
50
51 import java.sql.*; public class Session3 { private Connection connec; public Session3(String login, String mdp) throws SQLException { // CHARGEMENT du driver JDBC ORACLE try{ DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); } catch(SQLException e){ System.out.println("Driver de connection a la base Oracle non trouve"); } // CONNECTION à la base de données try { connec = DriverManager.getConnection("jdbc:oracle:thin:@infolin:1521:DB01", login, mdp); } catch (SQLException sqle) { sqle = new SQLException(); throw sqle; } } public void listeEmployes(int unNuServ) throws SQLException{ try { String sql ="SELECT nuempl, nomempl, hebdo, nomserv FROM employe, service WHERE employe.affect = service.nuserv AND service.nuserv = ?;"; PreparedStatement pStmtListeEmployes = connec.prepareStatement(sql); pStmtListeEmployes.setInt(1,unNuServ); ResultSet resultat = pStmtListeEmployes.executeQuery(); pStmtListeEmployes.close(); while (resultat.next()) { System.out.println(" N°"+resultat.getInt("nuempl")+", Nom: "+resultat.getString("nomempl")+", Travail hebdo: "+resultat.getInt("hebdo")+" H, Service: "+resultat.getInt("nuserv")); } } catch(SQLException sqle){ sqle = new SQLException(); throw sqle; } } }
Ah, et j'ai aussi essayé avec une Statement simple au lieu de preparedStatement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 import java.sql.*; public class Main2 { public static void main(String[] args) { try{ Session3 ses = new Session3("i2c03a","i2c03a"); ses.listeEmployes(1); } catch (SQLException sqle){ System.out.println("erreur"); } } }
D'après mes tests, la fonction passe dans l'exception lors du executeQuery....
J'ai passé desheures à chercher l'erreur j'en peux plus je vois vraiment pas où est le problème.J'ai besoin de votre aide ! Je compte sur vous !
Merci d'avance pour votre soutien !
Partager