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 :

system.out.println est le seul moyen de retourner des données


Sujet :

JDBC Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2005
    Messages : 876
    Points : 484
    Points
    484
    Par défaut system.out.println est le seul moyen de retourner des données
    Bonjour,

    j'ai un comportement bizarre... ou en tout cas que je ne maitrise pas.

    Dans le code suivant, la même instruction placée dans system.out.println me retourne le bon résultat, sinon pas
    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
     
    public static void connectAccess(){
     
    		Connection conn;
    		Statement st;
    		ResultSet rs;
     
     
    		try {
     
    			Class.forName(DRIVER);
    			conn = DriverManager.getConnection(URL);
    			st = conn.createStatement();
    			String getCnyName ="SELECT CnyTbl.CnyId, CnyTbl.CnyName FROM CnyTbl";
     
    			rs=st.executeQuery(getCnyName);
    			while (rs.next()) {
     
     
    				String myString = "Str " + rs.getString(2);//si cette ligne n'est pas commentée elle me retourne l'erreur "no data found"
     
    				System.out.println("RS " + rs.getString(2));//si ligne précédente est commentée, elle me retourne le nom de ma société
     
     
    			}
    			conn.close();
     
    		} catch (SQLException  sqle) {
    			System.out.println(sqle.getMessage());
    		}catch (ClassNotFoundException cnf){
    			System.out.println(cnf.getMessage());
    		}
     
     
    	}
    }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 12 430
    Points : 29 095
    Points
    29 095
    Billets dans le blog
    2
    Par défaut
    Salut,

    Quelle base ? Quel type de pilote (l'URL par exemple) ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2005
    Messages : 876
    Points : 484
    Points
    484
    Par défaut
    Bonsoir,

    J'aurais dû effectivement ajouter les deux lignes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";  // ce driver n'est plus disponible en javaFx 8, mais moi je suis en javaFx2.2
     
    private static final String URL = "jdbc:odbc:KLJava32BitsSystem";// KLJava32BitsSystem est défini dans mes Sources de données système ODBC (Windows 10) et accède à une base de donnée msAccess sans password
    en fait ce qui est étonnant, c'est que la même instruction "rs.getString(2)" qui retourne un String fonctionne dans le system.out.println mais provoque une erreur quand je l'assigne dans un variable String.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 25 481
    Points : 48 794
    Points
    48 794
    Par défaut
    ces deux lignes font le même appel. Si tu as eu un comportement différent, c'est que tu as aussi changé autre chose dans ton code.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 12 430
    Points : 29 095
    Points
    29 095
    Billets dans le blog
    2
    Par défaut
    Avec une base access et le driver JDBC/ODBC, un getXXX consomme la valeur : on ne peut donc l'appeler qu'une seule fois pour un record et une colonne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String value = rs.getString(2);
     String myString = "Str " + value;
    System.out.println("RS " + value);
    devrait fonctionner.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2005
    Messages : 876
    Points : 484
    Points
    484
    Par défaut
    Bonjour,

    Je ne l'appelle qu'une seule fois, puisque, comme indiqué dans l'exemple, je commente toujours une des deux lignes.

    mais la ligne suivante, même placée toute seule me retourne une erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String myString = "Str " + rs.getString(2);//si cette ligne n'est pas commentée elle me retourne l'erreur "no data found"
    je subodore que c'est lié à la gestion d'erreur.

    Quoiqu'il en soit, j'ai installé le driver UCanAccess qui à l'avantage de pouvoir fonctionner en javafx 8 et qui tourne sans problème.

    Merci pour ton aide.

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

Discussions similaires

  1. System.out.println() et l'émulateur
    Par timbob dans le forum Java ME
    Réponses: 5
    Dernier message: 06/07/2006, 16h10
  2. [Raccourci] Creer un raccourci pour System.out.println()
    Par VlaMonPseudo dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 11/04/2006, 15h48
  3. [tomcat] Ou s'inscrit les System.out.println des servlets ?
    Par Shiryu44 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 06/04/2005, 10h26
  4. [tomcat 5] [paramétrage] fichier de log System.out.println
    Par Aldo dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 22/02/2005, 15h41
  5. [Linux]Problème System.out.println + compiler
    Par Dnx dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/09/2004, 23h05

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