IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

erreur sur un ResultSet.


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 140
    Points : 31
    Points
    31
    Par défaut erreur sur un ResultSet.
    Bonjour, j'ai une erreur sur cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs = stmt.executeUpdate("INSERT INTO T_ACCES " + "VALUES('" +HeureEntree + "')");
    Voici l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    E:\projet\Integration\src\Test\GestionHorairesBdD.java:41: incompatible types
    found   : int
    required: java.sql.ResultSet
                rs = stmt.executeUpdate("INSERT INTO T_ACCES " + "VALUES('" +HeureEntree + "')");

    Pouvez-vous m'aider?

    Merci d'avance.

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    essaie avec execute au lieu de executeUpdate



    ERRATA: en fait c'est le type de retour qui est faux. execute et executeUpdate renvoie un int, et pas un resultset.

    Utilise executeQuery pour récupérer un resultset, mais dans le cas d'un insert ça ne sert à rien

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Et tant qu'on y est, utilise un PreparedStatement, ça évitera bien des problèmes (types, chaînes de caractères contenant une apostrophe, etc...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    PreparedStatement pstmt = connection.prepareStatement("insert into table(col1, col2, ..., colN) values(?, ?, ..., ?)");
    pstmt.set...(1, val1);
    pstmt.set...(2, val2);
    ...
    pstmt.set...(N, valN);
    psmt.execute();
    A+

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 140
    Points : 31
    Points
    31
    Par défaut
    il me demande de créer la classe connection et qu'est-ce que c'est le prepareStatement ?

  5. #5
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par mimi51340 Voir le message
    il me demande de créer la classe connection et qu'est-ce que c'est le prepareStatement ?
    "prepared statement", c'est un objet optimisé pour l'exécution répétée d'une même requête... mais dans ton cas ça ne sert pas à grand chose (statement tout simple va remplir le même boulot)

    et "connection", il ne faut pas le créer, juste le récupérer depuis le DriverManager.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase", "root", "root")

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Le PreparedStatement EST l'interface qu'il faudrait utiliser dès lors qu'on a des paramètres dans une requête.
    Là où tu faisais quelque chose dans le genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Statement stmt = connection.createStatement();
    Il faudra utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PreparedStatement pstmt = connection.prepareStatement("la requête sql à traiter avec des ? à la position des paramètres");
    Ensuite, tu affectes les valeurs des paramètres par leur position dans la requête en utilisant le "setter" qu'il faut pour le type de la colonne en db.
    Exemple :
    - une table personne (String nom, String prenom, Date dateNaissance)
    - une requête "select * from personne where nom like ? and prenom like ? and dateNaissance between ? and ?"
    - l'affectation se fera ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    pstmt.setString(1, laValeurDeNom);
    psmt.setString(2, laValeurDePrenom);
    pstmt.setDate(3, laDateDebut); <-- Attention : java.sql.Date
    pstmt.setDate(4, laDateFin);

Discussions similaires

  1. Erreur sur ResultSet : forward-only ???
    Par Yaz dans le forum JDBC
    Réponses: 4
    Dernier message: 06/07/2005, 15h33
  2. [VBS] Erreur sur "AddWindowsPrinterConnection"
    Par Admin dans le forum VBScript
    Réponses: 5
    Dernier message: 27/03/2004, 16h15
  3. Erreur sur serveur lié
    Par k-lendos dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/03/2004, 15h21
  4. []Erreur sur second emploi collection binding
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/03/2004, 18h02
  5. Erreur sur le TNSListener après installation de 9iAS
    Par Patmane dans le forum Installation
    Réponses: 4
    Dernier message: 04/02/2004, 11h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo