Vous pouvez avoir le meilleur des deux! La rapidité d'utilisation des index avec la maintenabilité et la sécurité de l'utilisation des noms de colonnes. Tout d'abord, sauf si vous utilisez un jeu de résultats, utilisez simplement les noms de colonnes.
1.Définissez un ensemble de variables entières, une pour chaque colonne à laquelle vous aurez accès. Les noms des variables peuvent inclure le nom de la colonne: par ex. iLast_Name.
2.Avant que la boucle de jeu de résultats parcoure les métadonnées de la colonne, définissez la valeur de chaque variable entière sur l'index de colonne du nom de colonne correspondant. Si l'index de la colonne 'Last_Name' est 3, définissez la valeur de 'iLast_Name' sur 3.
3.Dans la boucle de jeu de résultats, utilisez les noms de variables entières dans les méthodes GET/SET. Le nom de la variable est un indice visuel pour le développeur/responsable quant au nom de la colonne en cours d'accès mais la valeur est l'index de la colonne et donnera les meilleures performances. REMARQUE: le mappage initial (c'est-à-dire le mappage du nom de la colonne à l'index) est effectué une seule fois avant la boucle plutôt que pour chaque enregistrement et chaque colonne de la boucle.
D'abord, faites-le fonctionner. Ensuite, faites-le maintenable. seulement ensuite, profiler et optimiser les goulots d'étranglement identifiés. Ne pas optimiser prématurément. – KeatsPeeks
Bon conseil. J'étendais une classe abstraite à partir d'une bibliothèque qui suivait le modèle getLong (int), même si les noms de colonne étaient tous spécifiés en tant que champs. Cela me semblait un peu bizarre, alors je me demandais s'il y avait une bonne excuse pour ce morceau de code! Apparemment pas, il semblerait ... – sawu
pourquoi est-ce que personne n'a vraiment répondu à la question, tout le monde semble avoir une opinion que l'optimisation est une perte de temps – jasonk