Newsgroup: it.comp.java
Titolo: il problema con jdbc derby ??

Ciao a tutti !
 
Vi sarei molto grato se poteste darmi un'indicazione per venire fuori da questa difficolta'.
 
Ad un mio amico, che lavora nel campo dell'assistenza alla persona, e' stato chiesto di adoperare  un programma per la gestione delle prescrizioni ai pazienti, e gliene stata fornita una copia, per permettergli di studiarselo a casa. Ma sul pc non gira e si e' rivolto a me.
 
Io conosco un po' di programmazione in altri linguaggi ma sono all'oscuro di java, percio' ho collocato il programma 'infermeria' su Google Drive
https://drive.google.com/file/d/0B-aKn0if1BH6bFFQSVBLZVhfNXc/view?usp=sharing
 
 
Se qualcuno ha cinque minuti "da perdere", magari puo' dargli una rapida occhiatina e indicarmi sommariamente cosa dovei fare.
 
Piu' in basso riporto un log che ho ottenuto dopo aver lanciato il programma e che mi ha fatto venire il dubbio menzionato nell'intestazione di questo messaggio.
 
Grazie ancora e buon lavoro a tutti !!
------------------------------------------------------------------------------------
 
 
16/12/2014 21:26:19 [INFO ] Infermeria launched.
16/12/2014 21:26:20 [DEBUG] Trying to connect to: jdbc:derby:/infermeria
16/12/2014 21:26:20 [ERROR] Exception preparing statements
java.sql.SQLException: Database '/infermeria' not found.
	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.handleDBNotFound(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source)
	at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
	at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
	at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at infermeria.Application.prepareStatements(Application.java:136)
	at infermeria.Application.<init>(Application.java:88)
	at infermeria.Application$1.run(Application.java:1710)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$400(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.sql.SQLException: Database '/infermeria' not found.
	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
	at 
 
org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown 
 
Source)
	... 31 more

 	at infermeria.Application.prepareStatements(Application.java:136)
[...]
Il problema e' abbastanza evidente: il metodo prepareStatements della 
classe infermeria.Application cerca di ottenere la conessione al db 
infermeria ma il db non esiste, ovvero la directory /infermeria in cui 
il db dovrebbe trovarsi non c'è. Probabilmente il tuo amico ha omesso di 
copiare questo pezzo di applicazione, oppure ha omesso di seguire delle 
ipotetiche istruzioni di installazione.
Magari l'applicazione se trovasse il db potrebbe creare le tabelle 
necessarie. Prova  a modificare l'url di connessione da:
jdbc:derby:/infermeria
a:
jdbc:derby:/infermeria;create=true
in modo che il db venga creato.
Potrebbe darsi che l'url sia indicato in un file di configurazione 
.properties o in un file .xml a corredo dell'applicazione. Tale file 
potrebbe essere nella directory corrente dell'applicazione. Se 
l'applicazione è contenuta in un file .jar, il file di configurazione 
potrebbe essere nel file .jar che e' un normale archivio zippato, quindi 
basterebbe ridenominarlo .zip ed utilizzare le cartelle compresse di 
windows per vedere il contenuto.
 
Se permetti, per motivi di sicurezza, non sono disposto a lanciare 
applicazioni sul mio pc della cui provenienza non sono assolutamente certo.
 

> Il problema e' abbastanza evidente ...
 
Sei stato gentilissimo: grazie!
 
Adesso provo a girare i consigli al mio amico, primo tra tutti il controllo dell'eventuale incompletezza dei file che gli sono stati passati, e ti faccio sapere.
 
Stay tuned e grazie ancora !!

<<16/12/2014 21:26:20 [DEBUG] Trying to connect to: jdbc:derby:/infermeria
 
 
Nella cartella zippata che hai pubblicato esistono le cartelle del database 
embedded,ma  mescolate alle altre e fuori posto ( nella cartella seg0 ad es 
ci sono i dati del database,ma manca la cartella parente INFERMERIA che 
individua il nome del db )