Advise on mapping JTable to large PostgreSQL table requested?
От | Joost Kraaijeveld |
---|---|
Тема | Advise on mapping JTable to large PostgreSQL table requested? |
Дата | |
Msg-id | 1133860141.8837.46.camel@Panoramix обсуждение исходный текст |
Ответы |
Re: Advise on mapping JTable to large PostgreSQL table
|
Список | pgsql-jdbc |
Hi, As here are people that know databases and Java.... I *must* (as in: I have no choice and it can't be solved another way by customer demand) display a large table (> 1.100.000 records) in a JTable ( or something that looks like a JTable for the customer). The customer wants to able to search the data and wants the focus (if the search succeeds) to be on the record in the table. AS a JTable works with rows, so I have written code that calculates the row of the record in the query and maps any row request to an index in the query. To make it more clear (?;-): 1. Customer wants the record with 'some text' in column 'a' 2. I calculate the index: select count(*) from table where a < 'some text' 3. I check if the index is in a local cache ( an AbstractTableModel derived object that maintains a vector of cached record). 4. If not, I get 100 records before and after the requested record, including the record itself and put them in the local cache so that JTable can call AbstratTableModel.getValueAt(row,column) without the need of accessing the database. 5. I set the JTable selection to the index found in step 2 and as long as a requested row is in my cache I have a snappy respons. The trouble is that step 2 takes a lot of time (it is proportional to the size of the table?). I assume that I am not the first person that tries something like this. I want to know if my way of solving this problem is the most adequate, or that there are other ways of achieving my goal (which is indeed emulating an ISAM database). TIA -- Groeten, Joost Kraaijeveld Askesis B.V. Molukkenstraat 14 6524NB Nijmegen tel: 024-3888063 / 06-51855277 fax: 024-3608416 e-mail: J.Kraaijeveld@Askesis.nl web: www.askesis.nl
В списке pgsql-jdbc по дате отправления: