Resultset

icha_7146
Resultset

Bonjour,

je suis entraine de codé la méthode d'ajout voilà mon code:

try {
            String url = "jdbc.postgresql://localhost:5432/amploye";
            Class.forName("org.postgresql.Driver");
            Connection conn=DriverManager.getConnection(url,"postgres","1234");
            Statement st=conn.createStatement();
            ResultSet rs=st.executeUpdate("insert into contact values(?,?,?,?)");
            while (rs.next()) {
				System.out.println(" "+rs.getInt("id")+","+rs.getString("nom")+","+rs.getString("prenom")+","+rs.getInt("age"));
			}
        } catch (SQLException ex) {
            Logger.getLogger(SessionBDBean.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(SessionBDBean.class.getName()).log(Level.SEVERE, null, ex);
        }

le problème est dans cette ligne l'ide me la souligne en rouge et me demande de changer le type du rs en int

et Merci d'avance pour votre aide

icha_7146
Re: Resultset

:( j'attends votre aide

Niroken
Re: Resultset

Hello,

En fait ce qui se passe dans ton cas est tout à fait normal, puisque tu éxécutes une requete d'insertion dans ta base.

ResultSet rs=st.executeUpdate("insert into contact values(?,?,?,?)");

Le executeUpdate en java te renverra le nombre d'enregistrement modifiés/insérés dans ta table, c'est donc bien un int.

Si tu veux récupérer des données dans ta table contacts par exemple il faudrait faire :
ResultSet rs=st.executeQuery("select id, name, age from contact");
Et la normalement, ton ide ne devrait pas raler :)

Bonne chance,
Niroken

icha_7146
Re: Resultset

oui je ne trouve aucun problème dans le cas de récupérer les données d'une table par une requête de select

Mais comment résoudre ce problème avec insertion suppression et modification

a chaque que je veux y faire l'une de ses trois j'arrive pas pourquoi il me demande de changer le type de rs en int ?

Niroken
Re: Resultset

ReHello,

Le resultSet ne doit être utilisé que si tu veux remonter des données, dans le cas d'un select.

Dans les autres cas au lieu de faire ca :

ResultSet rs=st.executeUpdate("insert into contact values(?,?,?,?)");

Il faut faire :

st.executeUpdate("insert into contact values(?,?,?,?)");

Tu n'as pas besoin d'utiliser de resultSet puisque dans le cas d'un insert tu ne veux rien récupérer du tout. Tu fais donc juste appel à la méthode executeUpdate et tu ne te soucies pas de sa valeur de retour.

Bonne chance,
Niroken

icha_7146
Re: Resultset

Bonsoir niroken,

Merci :) pour votre explication :wink: