2010-11-29 4 views
0

Je sais que la mise en cache du jeu de résultats des instructions sql fréquemment utilisées est meilleure pour la performance que je recherche sur la meilleure façon de mettre en cache le jeu de résultats sql dans java. J'ai trouvé des codes, mais il faut ajouter de nouveaux fichiers jar à netbeans. Quelqu'un peut-il m'aider comment faire cela sans avoir besoin d'apis supplémentaires?La mise en cache du jeu de résultats sql dans java

+3

Quel est le problème avec l'ajout des pots à votre projet? –

+0

sûrement, ce n'est pas faux. mais je cherche de la manière la plus simple. Si l'utilisation d'API est inévitable, je l'utiliserai. – sahar

Répondre

0

Vous devez mettre en cache les données uniquement. Je vous conseille d'utiliser une API externe car vous aurez probablement besoin d'expulser les anciennes données du cache (pour éviter d'utiliser trop de mémoire).

Utilisation guave:

ConcurrentMap _continueContexts = new MapMaker() .expiration (10, TimeUnit.SECONDS) .makeMap();

P.S: Vous devriez utiliser quelque chose comme maven pour gérer vos dépendances.

6

Vous devez mettre en cache les objets résultants, pas les ensembles de résultats, car le ResultSet contient une référence à la connexion (via l'instruction) qui contient souvent une connexion de base de données ouverte ou n'est plus utilisable après la fermeture de la connexion!

+0

De plus, il y a une limite sur le nombre de connexions ouvertes, donc ResultSets, le serveur SQL est prêt à supporter – extraneon

0

Vous pouvez créer une liste liée de résultats. Avec le déclencheur de cache pointant vers le début de la liste. Puisque les listes liées agissent comme un wrapper autour de ce que vous voulez, vous pouvez rendre les résultats aussi génériques que vous le souhaitez. Cela ne nécessitera pas une autre API, mais vous devrez mettre en œuvre tout cela par vous-même et j'espère que vous comprenez pourquoi nous n'aimons pas réinventer la roue.

+1

^_^Je ne veux pas réinventer la roue. Je veux une méthode simple et pratique. le problème principal n'est pas l'utilisation d'API supplémentaires. J'ai trouvé beaucoup de méthodes et je ne sais pas ce qui est le meilleur. – sahar

Questions connexes