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

Hibernate Java Discussion :

Affichage du code sql dans la console


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Points : 57
    Points
    57
    Par défaut Affichage du code sql dans la console
    Bonjour,

    Mon problème est relativement simple : j'aimerai afficher le code sql qui est généré par hibernate, dans ma console, de manière claire et concise. Comment faire?

    J'ai bien essayé le logger hibernate que l'on configure par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="hibernate.show_sql">true</property>
    et qui génère des lignes du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Hibernate: insert into User (password, email, creationDate, lastLoginDate, firstName, lastName, gender, birthdate, sign, avatar, login) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
    Je trouve ce log presque totalement inutile étant donné qu'il n'affiche que des points d'interrogations pour les valeurs passées.

    Après recherche, j'ai trouvé que l'on pouvait positionner dans le fichier log4j :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    log4j.logger.org.hibernate.type=DEBUG
    qui me donne alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Hibernate: insert into User (password, email, creationDate, lastLoginDate, firstName, lastName, gender, birthdate, sign, avatar, login) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
    2490 [main] DEBUG org.hibernate.type.StringType  - binding null to parameter: 1
    2490 [main] DEBUG org.hibernate.type.StringType  - binding null to parameter: 2
    2490 [main] DEBUG org.hibernate.type.TimestampType  - binding '2008-01-22 15:39:14' to parameter: 3
    2490 [main] DEBUG org.hibernate.type.TimestampType  - binding null to parameter: 4
    2491 [main] DEBUG org.hibernate.type.StringType  - binding 'JUnitUser' to parameter: 5
    2491 [main] DEBUG org.hibernate.type.StringType  - binding 'JUnitUser' to parameter: 6
    2491 [main] DEBUG org.hibernate.type.StringType  - binding null to parameter: 7
    2491 [main] DEBUG org.hibernate.type.TimestampType  - binding null to parameter: 8
    2491 [main] DEBUG org.hibernate.type.StringType  - binding null to parameter: 9
    2491 [main] DEBUG org.hibernate.type.StringType  - binding null to parameter: 10
    2491 [main] DEBUG org.hibernate.type.StringType  - binding 'JUnitUser' to parameter: 11
    Je trouve cela à peine mieux, presque illisible parce perdu dans la quantité astronomique de logs que ça produit, et compliqué à déchiffrer puisque les bindings ne sont même pas nommés, mais donnent juste la valeur en fonction de la position.

    Ma question est donc :
    Est-il possible d'obtenir dans les logs une ligne de SQL simple et consise avec tout ce qui faut dedans, comme on l'écrirait nous même dans un client SQL (en passant par un logger JDBC peut-être?)

    Du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into User (creationDate, firstName, lastName, login) values ('2008-01-22 15:39:14', 'JUnitUser', 'JUnitUser', 'JUnitUser')
    Merci pour vos réponses!

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Bonjour,

    tu peux utiliser p6spy pour encapsuler ton driver jdbc.

    cela te permettra de voir toutes les requêtes envoyées à la base.

Discussions similaires

  1. [MySQL] Affichage résultat requête SQL dans page HTML comme un tableau
    Par joxbl dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/03/2011, 15h26
  2. [ACCESS] Affichage du code SQL d'une requête
    Par cyrille_ dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 03/07/2008, 21h22
  3. [MySQL] Affichage de résultats SQL dans un tableau
    Par illight dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 14/02/2007, 10h24
  4. Utiliser du code SQL dans VBA
    Par a2line dans le forum Requêtes et SQL.
    Réponses: 25
    Dernier message: 30/05/2006, 15h53
  5. [wxPython]Affichage de données SQL dans un controle
    Par fabrice_leon dans le forum wxPython
    Réponses: 1
    Dernier message: 31/03/2006, 10h27

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