Récupération d'une partie d'une table

Résolu
stefpoisson Messages postés 16 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 6 juillet 2006 - 29 mars 2006 à 08:58
stefpoisson Messages postés 16 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 6 juillet 2006 - 31 mars 2006 à 15:23
Bonjour,

J'ai réalisé un programme java qui interroge une base de données et avec les résultats crée un fichier texte. Ce programme sera sur mon serveur et je voudrais lancer ce programme pour qu'il aille interroger les bases de tout mes postes clients.
Dans un soucis de rapidité je voudrais faire une seule requête sur mon poste client qui prendrai la partie de la table qui m'intéresse et je voudrais la stocké pour après l'interroger en local.
Ma question est quelle strucure dois-je utiliser? Faut-il que je crée une structure du genre :

struct table{
String colonne1[];
String colonne2[];
...}

Ou y a t il un moyen plus efficace?
Je vous remercie de votre aide

3 réponses

cs_petitemainate Messages postés 29 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 14 septembre 2009
31 mars 2006 à 14:35
salut,

next() fait changer de ligne, tu passes à l'enregistrement suivant.
Après, je sais pas si j'ai tout compris, et si ma solution est bien, mais ce que tu peux faire, c'est effectivement créer une structure qui enregistre les données que tu récupère, mais la bonne structure je sais pas. Y'a plusieurs possibilités (tableaux, arraylist, etc)

En tout cas, pour te promener dans ton resultset :
- accéder à une colonne : rs.getType(NOM_COLONNE)
où Type est le type de données que tu veux récupérer (getString() ou getInt(), etc)
et NOM_COLONNE le nom de ta colonne dans ta requête
sinon: rs.getType(NUM_COLONNE) où NUM_COLONNE est le numéro de la colonne, sachant qu'ici ça commence à 1 et non pas à 0 comme dans les tableaux.
- passer à la ligne suivante : rs.next().
Si tu regardes les méthodes de Resultset dans l'API, tu trouveras certainement ton bonheur pour déplacer ton curseur.

Un petit exemple de code, pris du tuto JDBC de Valère VIANDIER : http://java.developpez.com/IntroJDBC.pdf




// Exécution d'une requete
String query = "SELECT * FROM Employés";

ResultSet resultset = statement.executeQuery(query);

// Traitement des résultats
// Ici on peut mettre le numéro des colonnes, ou leur nom
while(resultset.next()) {
System.out.println(resultset.getString(2) + " " + resultset.getString(3));
}

bon courage.

Petitemainate

oO0OoO0Oo ><)))°> oO0OoO0OoO0Oo
3
stefpoisson Messages postés 16 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 6 juillet 2006
29 mars 2006 à 09:51
Si je fait un select * comment après par exemple demander combien y a t il de date différente sachant que ma date se trouve dans la colonne 5. Je ne sais pas me balader dans un resultset, next() fait t il changer de ligne ou de colonne?
Help me please!
0
stefpoisson Messages postés 16 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 6 juillet 2006
31 mars 2006 à 15:23
Merci pour tes précieuses infos, je pense que maintenant je vais y arriver!
0
Rejoignez-nous