Derby

di il
3 risposte

Derby

Salve a tutti, ho completato una mia piccola applicazione, composta da una GUI fatta con Javafx e database Derby embedded. Tutto funziona nell'Ide Eclipse, ma se faccio una estrazione di un Jar eseguibile e porto l'app su una altra macchina perdo la connessione al database derby. Come posso fare a rendere la mia app portable con derby funzionante?

al momento ho usate queste due stringhe url e sulla mia macchina funzionano perfettamente

derbyUrl = "jdbc:derby:../App/MyDb" oppure "jdbc:derby:C:\\Progetti\\JavaFX\\App\\MyDb";



Grazie in anticipo

3 Risposte

  • Re: Derby

    leon77 ha scritto:


    Come posso fare a rendere la mia app portable con derby funzionante?

    al momento ho usate queste due stringhe url e sulla mia macchina funzionano perfettamente

    derbyUrl = "jdbc:derby:../App/MyDb" oppure "jdbc:derby:C:\\Progetti\\JavaFX\\App\\MyDb";
    E' la "solita" questione dei path assoluti/relativi (ne ho parlato l'altro giorno qui Includere db sqlite dentro un JAR, per un motivo diverso ma molto similare).

    Quel path che passi nel url può essere o "assoluto" o "relativo". Metterlo assoluto (e oltretutto "cablato" nel codice così) NON va bene. Non tutti hanno (ovviamente) una C:\Progetti\JavaFX\App\MyDb.
    Se lo metti relativo ... è relativo alla directory "corrente". E quindi la questione diventa "avere il controllo su come impostare la directory corrente quando avvii la applicazione". Che può essere possibile o no, dipende da cosa dai a qualcun'altro e come lo usa.

    L'alternativa (l'ho detto in quella discussione linkata) è usare un percorso facilmente rintracciabile, ad esempio sotto la "home" dell'utente. Ma ci sono anche altre possibilità, ad esempio chiedere all'utente una-tantum dove vuole posizionare il db.
  • Re: Derby

    Grazie, ho capito il discorso dei path assoluti o relativi, facendo acquisire la user/home dal System.getProperty dovrei in qualche modo fare un work around, ed io che credevo che con un database embedded avrei risolto il problema poiche il db veniva cablato nel jar mentre non è cosi…...
  • Re: Derby

    leon77 ha scritto:


    facendo acquisire la user/home dal System.getProperty dovrei in qualche modo fare un work around
    Nulla di difficile o strano .... basta che guardi le poche righe di codice che ho postato in quella discussione.

    leon77 ha scritto:


    ed io che credevo che con un database embedded avrei risolto il problema poiche il db veniva cablato nel jar mentre non è cosi…...
    embedded vuol solo dire che il "motore" del database "gira" all'interno della applicazione stessa, NON vuol dire che il/i file del db li puoi mettere dentro il JAR (se non es. per setup iniziale come ho descritto).

    Il jar è tecnicamente uno zip, NON lo aggiorni "facilmente" e quindi non va certamente bene per metterci un qualunque file da modificare "direttamente al volo".
Devi accedere o registrarti per scrivere nel forum
3 risposte