Description

Très souvent dans nos développements d’applications informatiques nous utilisons des listes de valeurs que nous allons chercher dans des fichiers « properties » ou des tables SQL ou dans le pire des cas codés « en dur » dans notre application.

Comme la plupart d’entres nous j’ai eu cette problématique et j’ai traité cela en créant des « Tables Mémoire ». Cela me permet de limiter les accès à la base de données (ou fichier), de diminuer l’occupation mémoire en ayant une seule instance de ces listes en mémoire et de simplifier mon code.

Ce code est relativement ancien et pourrait être amélioré (utilisation du patern singleton au lieu d’un classe pur static, optimisation des « synchronize »s, …), mais utilisant cela dans un grand nombre de projets et n’ayant aucun problème de performance ou de mémoire je reporte toujours ces changements.

Fonctions

Lors de la création de ce composant je souhaitais avoir les fonctions suivantes en simplifiant au maximum son utilisation dans une page JSP ou une Servlet :

  • « Connection » sql en externe
  • Ne pas recharger les données si elles sont déjà en mémoire
  • Chargement d’une liste à partir d’un ordre SQL : loadQuery(…)
  • Chargement d’une liste à partir d’une liste de valeurs : loadListe(…)
  • Lecture du libellé associé à un code (String) : getValue(…)
  • Lecture du libellé associé à un code (Combobox) : getListe(…)
  • Lecture du libellé associé à un code (Radio Bouton) : getRadio(…)

(Lire la suite…)