Cześć piszę aplikację w netbeans w java z wykorzystaniem bazy sqlite, mam pytanie jak zrobić automatyczną aktualizację, tj. podczas uruchomienia programu sprawdzić czy aktualny plik sqlite w naszym folderze jest starszy od tego z serwera ftp i jeśli tak to pobrać ten z ftp i nadpisać ten starszy ?
Tylko mi chodzi o SQLite nie o oracle w nim NIE MA czegoś takiego chyba.
lastModified() jest metodą klasy File, nie ma związku z żadną bazą danych.
Ok, tylko jak sprawdzić lastModified() pliku znajdującego się na serwerze ftp ?
Zależy jak się łączysz z tym serwerem. Jeśli korzystasz z jakiejś biblioteki np. commons-net to powinieneś znaleźć odpowiednią funkcję w dokumentacji, inaczej poszukaj na temat polecenia MDTM
Zrobiłem coś takiego, wszystko pięknie ładnie działa, łącze się z serwerem, sprawdzam ostatniądate modyfikacji , plik jest pobierany niestety gdy go chcę otworzyć wywala błąd:
java.sql.SQLException: database disk image is malformed
a to kod jak łącze się z ftp i pobieram plik
FTPClient ftp = new FTPClient();
try {
ftp.connect("ftp.prv.pl");
ftp.login("slowniktest","JSkieLog");
} catch (SocketException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
int reply = ftp.getReplyCode();
if(FTPReply.isPositiveCompletion(reply)){
System.out.println("Connected Success");
}else {
System.out.println("Connection Failed");
ftp.disconnect();
}
File file = new File("slownik.sqlite");
File file2 = new File("wyraz");
long data1=file.lastModified();
long data2=file2.lastModified();
if(data1>data2){
System.out.println("Na serwerze jest nowszy");
file.delete();
try{
File file3 = new File("slownik.sqlite");
FileOutputStream dfile = new FileOutputStream(file3);
ftp.retrieveFile("slownik.sqlite",dfile);
}
catch(IOException e){
System.out.println(e);
}
Użyj klienta FTP (Total Commander, WinScp,..) który ma funkcję porównywania zbioru lokalnego i zdalnego i sprawdź czy ściągnięty plik jest identyczny z oryginałem na serwerze.
Tylko mi chodzi o SQLite nie o oracle w nim niema czegoś takiego chyba.
Haha kolega podał kod do dokumentacji Javy, w adresie jest oracle.com bo Oracle kupiło niedawno Suna.
Wszystko jest OK plik jest idealnie i poprawnie sprawdzany co do daty ostatniej modyfikacji, wszystko pięknie i ładnie jednakże po pobraniu pliku i uruchomieniu programu wywala komunikat że plik sqlite jest uszkodzony i to mię dziwi. Nie wiem dlaczego i nie wiem jak to obejść.