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 :

Logger les resultats d'une requete JDBC:AS400


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Logger les resultats d'une requete JDBC:AS400
    Bonjour à tous.

    J'envoie des requêtes SQL à une machine AS400 en utilisant le driver AS400JDBCDriver.
    Lorsque j'effectue un Insert, Delete ou un Insert, j'aimerais avoir un retour de la part de la base de donnée qui me dirait "X lignes ont été ajoutés", "X lignes ont été modifiés" ou encore "X lignes ont été effacés".

    Mon code est actuellement celui ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            Connection connection;
            try {
                Class.forName("com.ibm.as400.access.AS400JDBCDriver");
                connection = DriverManager.getConnection(
                        "jdbc:as400:"+iseries+";database name="+environnement+";prompt=false;translate binary=true;naming=system", login, password);
                String query = "INSERT INTO PPSCO.AAA_TEST.EX1 VALUES(2)";
                Statement statement = connection.createStatement();
                ResultSet rs = statement.executeQuery(query);
                connection.close();
     
            } catch(Exception e) {
                e.printStackTrace();
            }
    J'ai donc chercher sur le net s'il existe des Logger ou autres librairies permettant de faire cela et j'ai vu qu'il existe plein d'outils (http://www.rgagnon.com/javadetails/java-0602.html).
    J'ai déjà testé la solution "Plain JDBC Logging" qui ne correspond pas à ce que je recherche et j'ai aussi regardé JDBC Logger et Log4JDBC qui me semblent assez compliqué à utiliser.

    Est ce que quelqu'un connait une méthode relativement simple afin d'obtenir des logs de la part de la base de données lorsqu'elle effectue une requête ?
    Je suis ouvert à toutes recommandations et conseils sur le sujet.

    Merci d'avance et bonnes fêtes à tous.

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Utilises executeUpdate, la valeur renvoyée indique le nombre de lignes impactées (si le driver le supporte ...)
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Et en passant, prends l'habitude d'utiliser des PreparedStatement plutôt que Statement, c'est beaucoup plus sûr (attaque par injection SQL).

    Sinon, je ne pense pas qu'il existe une bibliothèque pour faire ce que tu demandes, le mieux est de coder toi même ces logs.
    Pour le nombre d'éléments impactés par ta requête, comme le dit Logan Mauzaize, le retour de executeUpdate te le donne.
    Pour récupérer la valeur d'un auto-incrément lors d'un insert, ce sera un peu plus compliqué
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Bonjour.

    Merci beaucoup pour vos réponses.
    J'ai remplacé mes Statement par PreparedStatement et j'ai testé la méthode ExecuteUpdate. Ca correspond très bien à ce que je recherchais.
    Je vais me débrouiller avec cela pour améliorer mon code.

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

Discussions similaires

  1. [MySQL] Compter les resultats d'une requetes malgré un LIMIT.
    Par gregb34 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/10/2006, 20h53
  2. modifier les resultats d'une requete SQL
    Par billyboy dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 30/05/2006, 06h22
  3. [MySQL] mettre les resultats d'une requete dans un select
    Par Ludo75 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 18/01/2006, 16h19
  4. afficher les resultats d'une requete mysql sur 3 colonnes
    Par harlock59 dans le forum Requêtes
    Réponses: 7
    Dernier message: 24/12/2005, 14h38
  5. [debutant]compter les resultat d'une requete
    Par christophebmx dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/02/2005, 17h11

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