JDBC
fabien.joubert
Messages postés
35
Statut
Membre
-
fabien.joubert Messages postés 35 Statut Membre -
fabien.joubert Messages postés 35 Statut Membre -
Bonjour,
Voici de la BDD en java
j'ai initialisé une table CLIENTS
je n'ai saisi qu'une ligne pour le test
je souhaites afficher simplement cette ligne,
voici mon code :
public static void main(String args[]) throws SQLException {
try {
Class.forName("org.gjt.mm.mysql.Driver");
}
catch(Exception ex) { System.out.println("Class.forName Exception"); }
String url = "jdbc:mysql://localhost:3306/ima"; //jdbc:<sous-protocol>:<la base de données>
String user = "root";
String password = null;
try{
Connection con = DriverManager.getConnection( url, user, password );
System.out.println("DriverManager.getConnection");
Statement stmt = con.createStatement() ;
System.out.println("createStatement()");
String queryString = "select nom, prenom from clients";
ResultSet rs = stmt.executeQuery( queryString );
System.out.println("executeQuery");
String s1 = rs.getString( "NOM" ); /*<=ici apparait un breakpoint avec noté simplement SQLException*/
String s2 = rs.getString( "PRENOM" );
System.out.println(s1 + " " + s2);
con.close();
}
catch(SQLException ex){
System.out.println("echec de la connection");
ex.printStackTrace();
}
Malheureusemnt voici ce qu'il me retourne :
init:
deps-jar:
compile:
run:
DriverManager.getConnection
createStatement()
executeQuery
echec de la connection
java.sql.SQLException
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:815)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5528)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5448)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5488)
at jdbc.FenetreClient.main(FenetreClient.java:94)
BUILD SUCCESSFUL (total time: 0 seconds)
je ne peux donc pas afficher le résultat,
merci a celui ou celle qui pourra m'aider
Voici de la BDD en java
j'ai initialisé une table CLIENTS
je n'ai saisi qu'une ligne pour le test
je souhaites afficher simplement cette ligne,
voici mon code :
public static void main(String args[]) throws SQLException {
try {
Class.forName("org.gjt.mm.mysql.Driver");
}
catch(Exception ex) { System.out.println("Class.forName Exception"); }
String url = "jdbc:mysql://localhost:3306/ima"; //jdbc:<sous-protocol>:<la base de données>
String user = "root";
String password = null;
try{
Connection con = DriverManager.getConnection( url, user, password );
System.out.println("DriverManager.getConnection");
Statement stmt = con.createStatement() ;
System.out.println("createStatement()");
String queryString = "select nom, prenom from clients";
ResultSet rs = stmt.executeQuery( queryString );
System.out.println("executeQuery");
String s1 = rs.getString( "NOM" ); /*<=ici apparait un breakpoint avec noté simplement SQLException*/
String s2 = rs.getString( "PRENOM" );
System.out.println(s1 + " " + s2);
con.close();
}
catch(SQLException ex){
System.out.println("echec de la connection");
ex.printStackTrace();
}
Malheureusemnt voici ce qu'il me retourne :
init:
deps-jar:
compile:
run:
DriverManager.getConnection
createStatement()
executeQuery
echec de la connection
java.sql.SQLException
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:815)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5528)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5448)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5488)
at jdbc.FenetreClient.main(FenetreClient.java:94)
BUILD SUCCESSFUL (total time: 0 seconds)
je ne peux donc pas afficher le résultat,
merci a celui ou celle qui pourra m'aider
1 réponse
Désolé j'ai trouvé la solution :
il suffit de remplacer
String s1 = rs.getString( "NOM" );
String s2 = rs.getString( "PRENOM" );
System.out.println(s1 + " " + s2);
par
while(rs.next()){
String s1 = rs.getString( "NOM" );
String s2 = rs.getString( "PRENOM" );
System.out.println(s1 + " " + s2);
}
et ouai maintenant ca paraît LOGIQUE en fait!!
il suffit de remplacer
String s1 = rs.getString( "NOM" );
String s2 = rs.getString( "PRENOM" );
System.out.println(s1 + " " + s2);
par
while(rs.next()){
String s1 = rs.getString( "NOM" );
String s2 = rs.getString( "PRENOM" );
System.out.println(s1 + " " + s2);
}
et ouai maintenant ca paraît LOGIQUE en fait!!