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

JDBC Java Discussion :

requête UPDATE base de donnée


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 110
    Points : 58
    Points
    58
    Par défaut requête UPDATE base de donnée
    Bonjour,

    Pour m'entrainer j'essaye de modifier la colonne d'une table.
    J'utilise un UPDATE ça fonctionne bien dans mon fichier access, mais les changements ne s'affichent pas dans ma console avec mon System.out.println("");

    Voici mon code :

    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
     
    static String dataSourceName = "BaseDeDonnee" + "";
        static String dbURL = "jdbc:odbc:" + dataSourceName;
     
        public static void main(String[] args) throws SQLException, ClassNotFoundException {
            try {
                //***Connexion*****
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                Connection con = DriverManager.getConnection(dbURL, "","");
                System.out.println("it Works !");
                //*****************
     
                Statement s = con.createStatement();
                ResultSet rs = s.executeQuery("SELECT * FROM Images");
                ResultSetMetaData resultMeta = rs.getMetaData();
     
                //***Affichage***
                while(rs.next()){
                System.out.println(rs.getString("file_path") + " | " + rs.getString("color_percentage")
                + " | " + rs.getString("centered")+ " | " + rs.getString("level"));
                }
     
                System.out.println("************************");
     
                //Modification
                s = con.createStatement();
                int statut = s.executeUpdate("UPDATE Images set edge_complexity = 149");
     
                //Affchage une seconde fois pour voir le changement
                while(rs.next()){
                System.out.println(rs.getString("file_path") + " | " + rs.getString("color_percentage")
                + " | " + rs.getString("centered")+ " | " + rs.getString("level"));
                }
     
                //***Deconnexion***
                rs.close();
                s.close();
                con.close();
     
     
            }
            catch (Exception err) {
                System.out.println( "Error: " + err );
            }
        }
    Si vous avez une idée merci beaucoup

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    Ben c'est normal, tu n'as pas effectué de relecture derrière l'update...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 110
    Points : 58
    Points
    58
    Par défaut
    Bonjour,
    Merci

    alors je ne comprends pas bien je pensais que la relecture etait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //Affchage une seconde fois pour voir le changement
    while(rs.next()){
    System.out.println(rs.getString("file_path") + " | " + rs.getString("color_percentage")
     + " | " + rs.getString("centered")+ " | " + rs.getString("level"));
     }
    Pouvez-vous m'expliquer comment lire ma table qui a été modifié ?

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    JDBC étant une API plutôt bas niveau, les opérations se découpent comme ceci :

    - on créé une connexion vers la base de données -> connection = DriverManager(...);
    - on créé un statement pour exécuter une requête -> statement = connection.createStatement();
    - on exécute la requête statement.executeQuery(...) qui renvoie un ResultSet -> rs
    - on parcourt le ResultSet pour lire ligne par ligne les enregistrements renvoyés -> rs.next()
    - on extrait les valeurs des colonnes de la ligne en cours -> rs.getString(...)

    Dans ton exemple, ta boucle while(rs.next()) a consommé toutes les lignes renvoyées par la requête, le curseur se trouve en "fin de fichier".
    L'objet rs existe toujours, mais il n'a plus rien à lire... et dans tous les cas, il a déjà extrait les données de la DB, il ne reflèterait pas les changements apportés par ta requête d'update (du moins pas pour toutes)

    C'est plus clair ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 110
    Points : 58
    Points
    58
    Par défaut
    Oui merci beaucoup j'ai compris les étapes à suivre maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requêtes multi bases de données
    Par clb01 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/09/2007, 12h25
  2. Réponses: 3
    Dernier message: 01/03/2007, 21h54
  3. Execution de requête sur base de données distante
    Par ~~PriVate JoKe~~ dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/11/2006, 21h59
  4. Problème Update Base de données avec les composants ADO
    Par lingli dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/04/2006, 00h41
  5. Requête sur base de données ACCESS
    Par JLamotte dans le forum Access
    Réponses: 1
    Dernier message: 21/11/2005, 10h50

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