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

Requêtes MySQL Discussion :

Incapable d'insérer dans MySQL avec JDBC


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Incapable d'insérer dans MySQL avec JDBC
    Bonjour,

    Je recherche désespérément sur le net depuis 4 jours....rien trouvé....

    J'essaie d'effectuer un INSERT dans MySQL avec une connection JDBC, mais l'insertion ne se fait pas. Il n'y a PAS de messages d'erreurs provenant de l'application JAVA me disant que l'insertion n'a pas marché.

    La connection est correcte, et tout les SELECT que je fais, fonctionnent pourtant....?!?!?

    J'ai tout mis les variables (dans MySQL) character set à UTF8, ou bien à latin1....fonctionne toujours pas.

    Ma connection......

    Connection uneConnection = DriverManager.getConnection(jdbc:mysql://localhost/gestion_examen?user=root&password=xxxxx&useUnicode=true&characterEncoding=UTF-8");
    uneConnection.setAutoCommit(false);

    qqun a une idée ????

  2. #2
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 89
    Points : 84
    Points
    84
    Par défaut
    Salut,
    Peux tu donner les lignes de code utilisées pour l'insertion ?

    Plus précisément, tu utilises un execute() pour les select et des executeUpdate() pour les insert, delete et update ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Salut,

    J'ai essayé de plusieurs façons..... voir les lignes en commentaire

    Voici:

    try {
    uneConnection = UsineConnexion.etablirConnexion();
    System.out.println("Connexion établie");
    }
    catch (Exception e) {
    System.err.println(e.toString());
    System.err.println("Impossible de contacter la BD gestion_examen");
    }
    //String insert =
    // "INSERT INTO QUESTIONS436 VALUES ('4','23','test','NULL');";
    //PreparedStatement ps = uneConnection.prepareStatement(insert);
    //ps.executeUpdate();

    String query =
    "INSERT INTO QUESTIONS436 (sujet,no,question) VALUES (?,?,?);";

    PreparedStatement ps = uneConnection.prepareStatement(query);
    ps.setInt(1,4);
    ps.setInt(2,25);
    ps.setString(3,"test");
    ps.executeUpdate();
    ps.close();
    uneConnection.close();
    }


    Merci

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Salut Nicolou...

    Comme je t'écrivais... tu m'as mis la puce à l'oreille... en t'envoyant mon dernier message...

    J'ai remarqué que ma connection faisait... setAutoCommit(false)....

    J'ai mis setAutoCommit(true).... et l'insertion MARCHE !!!!

    merci :-)..

    Toutefois, je me demande pourquoi la connection sans autoCommit ne marche pas pour les INSERTS ?!?!?!

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 124
    Points : 159
    Points
    159
    Par défaut
    Sais-tu ce que c'est l'autocommit au moins?

    Quand tu fais une requête avec autocommit, elle est automatiquement validée. S'il n'y a pas d'autocommit, tout ce que tu fais ne sera pas réellement "enregistré" dans la base de données. Il faudra faire un commit pour valider, ce que tu ne faisais probablement pas.

    Si on désactive l'autocommit c'est dans le but de faire des transactions. Par exemple si tu gères un forum et que tu veux supprimer un utilisateur, il est peut-être préférable de s'assurer que tous les messages de cet utilisateur aient été supprimé avant, sinon il risque d'y avoir des problèmes avec les Pk/Fk. Dans ce cas, tu mets auto-commit à faux, tu supprimes les messages, tu supprimes l'utilisateur et si t'as pas eu d'erreur, tu fais un commit. Si par contre il y a eu une erreur, tu fais un rollback (tu annules le tout).

    Voilà j'espère avoir été clair et j'espère que le problème c'était bien une requête non validée et pas un plantage...
    Bonne soirée

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/12/2011, 16h57
  2. Réponses: 2
    Dernier message: 21/07/2008, 15h00
  3. [MySQL] Insérer un vecteur dans MySQL avec PHP
    Par fAdoua123 dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 21/02/2008, 17h50
  4. insérer des images dans MySQL avec PHPMyAdmin
    Par intik dans le forum Outils
    Réponses: 1
    Dernier message: 29/08/2006, 09h59
  5. Comment stocker PROPREMENT "\\" dans mysql avec p
    Par jcachico dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 03/12/2005, 14h32

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