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 :

Problème avec requête SQL


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Problème avec requête SQL
    Salut tout le monde j'ai fait une fonction qui permet de supprimer le dernier enregistrement dans une base de données

    Mais la requete ne fonctionne pas car j'ai imbriqué un delete et un select J'ai tout essayé INNER JOIN, EXiST , IN mais rien ne fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void supprimerDernierElement() {
    		String req = "DELETE from clients WHERE idClient=(SELECT Max(idClient) from clients)";
    		try {
    			pre = newCon.prepareStatement(req);
    			pre.executeUpdate();
     
    			System.out.println("ok");
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}

  2. #2
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Tu peux détailler ce qui "ne fonctionne pas" ?

    ce que tu peux essayer, c'est de mettre un newCon.commit(); avant ton catch

    Ensuite, dans les bonnes pratiques si tu ne veux pas avoir de soucis, ferme toujours tes objets de manipulation JDBC. Ton preparedStatement : ferme -le

    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
     
    public void supprimerDernierElement() {
    		String req = "DELETE from clients WHERE idClient=(SELECT Max(idClient) from clients)";
    		try {
    			pre = newCon.prepareStatement(req);
    			pre.executeUpdate();
     
    			System.out.println("ok");
                            newCon.commit();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} finally {
                            if (pre != null){
                                 try { pre.close(); } catch (Exception e){e.printStackTrace();}
                            }
                    }
    	}
    Et si tu es en Java 7 ou plus, y'a plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void supprimerDernierElement() throws SQLException {
    		String req = "DELETE from clients WHERE idClient=(SELECT Max(idClient) from clients)";
    		try (PreparedStatement pr = newCon.prepareStatement(req);){
    			pr.executeUpdate();
     
    			System.out.println("ok");
                            newCon.commit();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
                            newCon.rollBack();
    		} 
    	}
    Je ne suis pas mort, j'ai du travail !

  3. #3
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    changes ta requete en:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String req = "DELETE from clients WHERE idClient IN (SELECT Max(idClient) from clients)";
    Eric

Discussions similaires

  1. [SQL] Problème avec requête SQL
    Par Kenya dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/01/2008, 22h13
  2. Problème avec requête SQL dans VBA
    Par Mimisio dans le forum VBA Access
    Réponses: 10
    Dernier message: 13/07/2007, 11h00
  3. [SQL] problème avec requête sql
    Par belakhdarbts10 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/05/2007, 11h58
  4. probléme avec requête SQL
    Par richard60 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/03/2007, 18h18
  5. Problème avec requête SQL avec variables
    Par harry25 dans le forum ASP
    Réponses: 1
    Dernier message: 03/01/2007, 03h41

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