кеширование sql результирующий набор в java - PullRequest
0 голосов
/ 29 ноября 2010

Я знаю, что кэширование набора результатов часто используемых операторов SQL лучше для производительности. Я ищу лучший способ кэширования набора результатов SQL в Java.Я нашел несколько кодов, но это требует добавления новых файлов JAR в NetBeans.Кто-нибудь может мне помочь, как можно сделать это без необходимости дополнительного API?

Ответы [ 3 ]

6 голосов
/ 29 ноября 2010

Вы должны кэшировать результирующие объекты, а не наборы результатов, потому что ResultSet имеет ссылку на соединение (через оператор), которое часто содержит открытое соединение с базой данных или больше не может использоваться после того, как соединение было закрыто!

0 голосов
/ 30 ноября 2010

Вы должны кэшировать только данные.Я бы посоветовал вам использовать внешний API, потому что вам, вероятно, также потребуется удалить старые данные из кэша (чтобы не использовать слишком много памяти).

Использование guave :

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

PS: вам нужно что-то вроде maven для управления вашими зависимостями.

0 голосов
/ 30 ноября 2010

Вы можете сделать связанный список результатов. С триггером кеша, указывающим на начало списка. Поскольку связанные списки действуют как обертка вокруг всего, что вы хотите, вы можете сделать результаты настолько универсальными, насколько захотите. Это не потребует другого API, но вам придется реализовать все это самостоятельно, и, надеюсь, вы понимаете, почему мы не любим изобретать велосипед.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...