2013-01-14 41 views
5

Tôi có "TABLE A" trong cơ sở dữ liệu chứa 3 cột "COL 1" , "COL 2" and "COL 3" với khoảng 1000000 (1 triệu) bản ghi.Lưu trữ dữ liệu trong bộ nhớ

Against bảng này tôi đã ánh xạ đơn giản POJO phép nói "ClassA" với 3 biến dụ "var1" , "var2" , "var3" và cũng xác định có set()get() phương pháp.

Ứng dụng của tôi chứa các JSP, Servlets và POJO đơn giản không có khung công tác lạ mắt và không có công nghệ nào khác. Điều tôi thực sự muốn là khi lần đầu tiên ứng dụng của tôi sẽ được triển khai trên Máy chủ ứng dụng và yêu cầu đầu tiên mà nó nhận được, chỉ cho yêu cầu đó (chỉ 1 lần) Servlet của tôi sẽ nhận được 1 Triệu bản ghi từ TABLE A, ánh xạ ClassA với những bản ghi này và bắt đầu điền các đối tượng cho ClassA và giữ chúng trong Vector hoặc ArrayList, vì bạn có thể đã hiểu rằng Vector/ArrayList của mình bây giờ sẽ chứa 1 triệu đối tượng với mỗi đối tượng đại diện cho record/tupple trong "TableA". OK, bây giờ đến phần thực sự và khó khăn, tôi muốn điều này Vector/ArrayListstored/persisted/added đến ngữ cảnh ứng dụng hoặc máy ảo hoặc bất kỳ vị trí lưu trữ bộ nhớ nào khác (thực sự tôi không biết), để mỗi lần JSP pages/Servlets của tôi đang truy cập đối tượng trong bộ nhớ nhận dữ liệu và không truy cập cơ sở dữ liệu mỗi lần.

+0

tại sao không sử dụng một cơ sở dữ liệu trong bộ nhớ như HSQLDB , sẽ hoạt động như một bộ nhớ cache và bạn có thể sử dụng các câu lệnh SQL yêu thích của mình - điền nó vào thời gian khởi tạo ứng dụng của bạn. Tùy chọn khác là sử dụng giải pháp bộ nhớ cache như JBoss infinispan. –

Trả lời

2

Bạn phải sử dụng Java Hệ thống Caching (see here) hoặc ehcache (see here) để lưu trữ dữ liệu trong bộ nhớ cache, Inversion of Control trong Xuân cũng giúp một cách nào đó nhưng không chắc liệu nó sẽ giúp để lưu trữ 1 triệu dữ liệu trong heap, khi bộ nhớ heap bị hạn chế.

1

Dường như bạn cần bộ nhớ đệm, nếu tôi giúp bạn đúng. Tôi khuyên bạn nên xem qua số EHcache hoặc Infinispan tại đây.

Hy vọng điều này sẽ giúp

0

Tôi nghĩ rằng bạn đang tìm một số cách để lưu vào bộ nhớ cache đối tượng của bạn.

Bạn có thể muốn nhìn vào ehcache

hay,

kể từ khi bạn có các đối tượng lớn, bạn có thể nhìn vào thực hiện Object Repository như, noDB

Các vấn đề liên quan