Czesć! Pisze program bazodanowy w javie pobierający ogromne ilości danych. Problem w tym, że czas pomiędzy wysłaniem zapytania a pobraniem danych jest bardzo duży (nawet 5 minut czekania).
OK, no to do rzeczy.
Aktualna wersja:
/**
* Klasa do pobierania danych z BD.
*/
class KlasaA{
ArrayList<String> pobierzA(){
try(){
resultSet = statement.executeQuery("SELECT A FROM tabelkaA");
while(resultSet.next()){
arrayList.addElement(resultSet.getString("A"));
}
}catch(SQLException ex){/*...*/}
}
ArrayList<String> pobierzB(){
try(){
resultSet = statement.executeQuery("SELECT B FROM tabelkaB");
while(resultSet.next()){
arrayList.addElement(resultSet.getString("B"));
}
}catch(SQLException ex){/*...*/}
}
}
// w innym pliku pobieram sobie tymi metodami gotowe kolekcje z danymi.
/**
* Klasa używająca powyższą.
*/
class KlasaB{
void metodaX(){
System.out.println(KlasaA.pobierzA());
}
}
Takich metod mam kilkanaście, i są dość często wywoływane. Niestety try() bardzo mocno spowalnia działanie programu.
Jak to można przyśpieszyć ? Pobranie Danych tylko raz odpada bo w czasie działania programu dane w bazie ulegają zmianie.