[JAVA] Récupérer valeurs dans une BD MySQL
Fermé
algelos
Messages postés
14
Date d'inscription
mardi 22 mars 2011
Statut
Membre
Dernière intervention
15 janvier 2014
-
Modifié par algelos le 15/07/2011 à 14:35
sqdsq - 21 déc. 2012 à 16:18
sqdsq - 21 déc. 2012 à 16:18
A voir également:
- [JAVA] Récupérer valeurs dans une BD MySQL
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
4 réponses
algelos
Messages postés
14
Date d'inscription
mardi 22 mars 2011
Statut
Membre
Dernière intervention
15 janvier 2014
18 juil. 2011 à 09:51
18 juil. 2011 à 09:51
Petit UP?
Je pense que ce n'est pas grand chose, mais n'arrive pas à voir quoi...
Après moultes tests, je pense qu'il n'arrive pas à piocher des infos dans ma table incompatibilite...
Si je fais :
SELECT c.id FROM Cadre c
Cela me renvoie une liste contenant 5id, contenus dans ma table cadre.
Par contre, ayant un champ id également dans ma table incompatibilite, lorsque je fais :
SELECT c.id FROM Incompatibilite c
Cela me renvoie une liste vide. Je n'ai aucune erreur, il arrive donc bien à trouver ma table, mais ne pioche aucune info dedans. Ais-je une mise à jour à faire lorsque je modifie des tables? Je pense que cela doit être plutot simple, mais je ne trouve pas la cause de cette erreur.
Merci d'avance !
Je pense que ce n'est pas grand chose, mais n'arrive pas à voir quoi...
Après moultes tests, je pense qu'il n'arrive pas à piocher des infos dans ma table incompatibilite...
Si je fais :
SELECT c.id FROM Cadre c
Cela me renvoie une liste contenant 5id, contenus dans ma table cadre.
Par contre, ayant un champ id également dans ma table incompatibilite, lorsque je fais :
SELECT c.id FROM Incompatibilite c
Cela me renvoie une liste vide. Je n'ai aucune erreur, il arrive donc bien à trouver ma table, mais ne pioche aucune info dedans. Ais-je une mise à jour à faire lorsque je modifie des tables? Je pense que cela doit être plutot simple, mais je ne trouve pas la cause de cette erreur.
Merci d'avance !
Logitux
Messages postés
102
Date d'inscription
lundi 30 mai 2011
Statut
Membre
Dernière intervention
28 septembre 2011
8
18 juil. 2011 à 10:52
18 juil. 2011 à 10:52
Personnellement j'ai fait comme ça (repris du site du zero)
(Par contre moi c'est pas oql...)
Je ne code pas beaucoup en Java du coup c'est possible que certaines choses peuvent être optimisée.
En espérant que ça puisse t'aider
(Par contre moi c'est pas oql...)
Je ne code pas beaucoup en Java du coup c'est possible que certaines choses peuvent être optimisée.
En espérant que ça puisse t'aider
public void callDB(){ id_entreprise.removeAll(id_entreprise); nom_entreprise.removeAll(nom_entreprise); try { Class.forName("org.gjt.mm.mysql.Driver"); //System.out.println("DRIVER entreprise OK ! "); String url = "jdbc:mysql://localhost:3306/myDB"; String user = "root"; String passwd = "mondepasse"; Connection conn = DriverManager.getConnection(url, user, passwd); //System.out.println("Connection effective !"); //Création d'un objet Statement Statement state = conn.createStatement(); //L'objet ResultSet contient le résultat de la requête SQL ResultSet result = state.executeQuery("SELECT id_entreprise, nom_entreprise FROM t_entreprise ORDER BY nom_entreprise ASC"); //On récupère les MetaData ResultSetMetaData resultMeta = result.getMetaData(); for(int i = 1; i <= resultMeta.getColumnCount(); i++){ while(result.next()){ id_entreprise.add(result.getInt("id_entreprise")); nom_entreprise.add(result.getString("nom_entreprise")); } } result.close(); state.close(); } catch (Exception e) { //e.printStackTrace(); JOptionPane.showMessageDialog(null, "Impossible de se connecter à la base de données", "Attention", JOptionPane.WARNING_MESSAGE); } }
Bonjour,
D'après le bout de code que tu mets, tu travailles avec JPA qui est le système de persistence java.
Ceci veut dire que tu doit avoir une classe annotée par @Entity qui porte le nom
Incompatibilite avec un I majuscule comme nom de classe.
Déjà, vérifie que cette classe contient bien des champs (non annotés @Transient)
Ce sont ces champs qui sont traduits en colonnes par JPA.
Par contre, JPA crée la table tout en minuscule, c'est normal.
La requête que tu donnes :
n'est pas du SQL mais du JPQL, c'est à dire des requêtes "objet"
En SQL, on aurait écrit :
Tu dis que ta table contient des champs, donc si avec phpmyadmin tu fais :
Si les 2 précédentes sont ok, alors vérifie le fichier persistence.xml qui doit contenir une ligne du genre :
Où xxx et yyy sont des noms de package java (regarde dans le fichier Incompatibilite.java la ligne qui commence par "package"
Si ça marche avec Cadre, recopie la ligne puis remplace dans la copie "Cadre" par Incompatibilite".
Voilà des pistes, à ton tour !
Cordialement
D'après le bout de code que tu mets, tu travailles avec JPA qui est le système de persistence java.
Ceci veut dire que tu doit avoir une classe annotée par @Entity qui porte le nom
Incompatibilite avec un I majuscule comme nom de classe.
Déjà, vérifie que cette classe contient bien des champs (non annotés @Transient)
Ce sont ces champs qui sont traduits en colonnes par JPA.
Par contre, JPA crée la table tout en minuscule, c'est normal.
La requête que tu donnes :
SELECT c FROM Incompatibilite c
n'est pas du SQL mais du JPQL, c'est à dire des requêtes "objet"
En SQL, on aurait écrit :
SELECT c.* FROM incompatibilite c
Tu dis que ta table contient des champs, donc si avec phpmyadmin tu fais :
SELECT * FROM incompatibilitetu obtiens bien des lignes ?
Si les 2 précédentes sont ok, alors vérifie le fichier persistence.xml qui doit contenir une ligne du genre :
<class>xxx.yyy.Incompatibilite</class>
Où xxx et yyy sont des noms de package java (regarde dans le fichier Incompatibilite.java la ligne qui commence par "package"
Si ça marche avec Cadre, recopie la ligne puis remplace dans la copie "Cadre" par Incompatibilite".
Voilà des pistes, à ton tour !
Cordialement