Seby,
You can simply implement a caching mechanism yourself. Search for Implementing Caching in google. This singleton class cache you can store in Application context , thus it will be accessible from any user login.
Or rather than storing in context you can just make it a singleton class initialized in a separate
Servlet (Call it a ApplicationInitializerServlet) which gets loaded up when application is loaded in Servlet container.
In the cache class you can create a
Thread (You can use a Schedulre or timer class or New ThreadExecutor class in
java 5) to create a scheduler thread which will keep on looing for any change in the particular DB you are expecting data to change , As soon as it finds new updates in DB yuor thread can invoke
JDBC calls to update the cache class object.
You can use HashMap or HashTable as per your convenience.
Also if you want you can use Hibernate to do all this caching and periodic lookup of database change. It relieves you of creating a continuous running thread to monitor DB change. As soon as any table data changes the Hibernate cache objcets are updated on their own.
but i will advise avoid Hibernate for this small requirement and create your own Cache classes.
Hope this helps