|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 876
|
[java e mysql] Driver JDBC
Ciao a tutti, ho un problema che spero possiate risolvermi; in pratica in mysql ho creato una tabella con alcuni attributi che dovrei caricare da un programma in java; il programma viene compilato ma in esecuzione mi appare
"non trovo il driver com.mysql.jdbc.Driver" Che devo fare per poter accedere al database? Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
|
...hai il jar contenente i driver jdbc nel classpath?
te ne accorgi solo al runtime perchè il driver viene caricato tramite reflection...
__________________
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 876
|
Grazie per la risposta, purtroppo è la prima volta che tento questo tipo di cose e non saprei cosa guardare, mi sai indicare cosa vedere o se vuoi ti posto il codice così dai un'occhiata e mi sai dire dove sbaglio?
Grazie ancora, spero in una tua risposta |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
|
non dipende dal codice...
dipende da come lo esegui... Se lo stai lanciando dalla riga di comando devi fare qualcosa del genere: java -cp jardeldriverjdbc.jar;. tuopackage.TuaClasse Se stai usando Eclipse o qualche altro IDE devi semplicemente aggiungere questo jar alla build path del tuo progetto.
__________________
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 876
|
Lo lancio da riga di comando;
mi rendo conto che ti sto rompendo, se hai voglia di scrivere il comando esatto ti ringrazio, altrimenti grazie lo stesso, cercherò altre strade, ho provato a lanciare il tuo comando avendo aggiunto il package e il nome della classe ma non ci sono stati risultati quindi evidentemente sbaglio qualcosa. Ancora grazie |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
|
non ci sono altre strade, il problema è che non hai il jar del driver jdbc nel classpath, e il comando per aggiungerlo è quello
Sicuro di aver scritto il percorso completo per questo jar? Non è che il driver che usi è type 2 anzikè type 4 e ha bisogno anke di un jar contenente le librerie native?
__________________
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 876
|
Forse sbaglio a cercare il percorso del jar, mi sapresti dire come verificarlo?
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
|
....devi vedere dove hai copiato il jar del driver jdbc all'interno del tuo hard disk..
ovviamente da qui non posso vedere i file che hai nel tuo pc prova a cercarlo con la funzione search di windows... o al max riscaricalo e salvalo in una posizione che conosci. Una volta che l'hai trovato prova dapprima a passargli un percorso assoluto del tipo: java -cp C:\jdbc\jdbcdriver.jar;. mio.package.MiaClasse
__________________
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 876
|
Ascolta solo 1 cosa, il file che mi serve è sqljdbc.jar?Se è questo, risolvo se inserisco il suo percorso nel classpath del sistema giusto?
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 876
|
Allora, ho preso il file, si trova in C:\Documents and Settings\nome\Desktop\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\enu
In pratica il comando che devo digitare da terminale è java -cp C:\Documents and Settings\nome\Desktop\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\enu\jdbcdriver.jar;. a.prova dove a è il package e prova è il nome della classe. Mi confermi questo? Te lo chiedo perchè mi dà errore "exception in thread main java.lang.noclassdeffound error: and" |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Se i percorsi da linea di comando contengono degli spazi puoi usare le virgolette, altrimenti java.exe pensa che le cose finiscano quando invece non sono ancora a metà.
java -cp ".;c:\Document And Settings...eccetera" Per la connessione alla base dati usa il data source fornito insieme al driver. In questo modo, oltre a fare un salto nel nuovo millennio, ottieni anche la possibilità di verificare la corretta inclusione delle librerie del driver durante la compilazione. Per MySql, il data source è: com.mysql.jdbc.jdbc2.optional.MysqlDataSource
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 876
|
Allora, ho sostituito Class.forName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource");
al posto di Class.forName("com.mysql.jdbc.Driver"); Ho lanciato dal prompt il comando java -cp ".;C:\Documents and Settings\nome\Desktop\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\enu\jdbcdriver.jar;. a.prova" ma il risultato è nulla, nel senso che dice: Usage: java [-options] class [args...] <to execute a class> or java [-options] -jar jarfile [args...] to execute a jar file> In compilazione non dà errori, in esecuzione continua a dire che manca il driver. Dove sbaglio? |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
|
a.prova va fuori dalle virgolette.
Ma cmq sicuro che la tua classe si chiami prova? ![]() di solito i nomi di classi vanno tutti con l'iniziale maiuscola
__________________
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Che è?
No. Il DataSource lo usi nel codice al posto di DriverManager che è vetusto. import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; ... MysqlDataSource dataSource = new MysqlDataSource(); dataSource.setDatabaseName(... dataSource.setPort(... Connection conn = dataSource.getConnection(userName, password)
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 876
|
Allora, per la classe avete ragione, nella fretta l'ho rinominata in Pro.java; il comando java -cp ".;C:\Documents and Settings\nome\Desktop\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\enu\jdbcdriver.jar;." a.Pro genera però l'errore "non trovo il driver com.mysql.jdbc.Driver"
In pratica lo stesso errore che ho anche se dò java Pro dopo la compilazione. Non capisco proprio, il percorso per il jdbcdriver.jar è questo, perchè non lo prende? |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 876
|
A PGI-Bis: se faccio l'import che hai indicato quando compilo dice che il package com.....optional non esiste
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
|
scusa..
fai jar tvf "C:\Documents and Settings\nome\Desktop\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\enu\jdbcdriver.jar" | findstr com/mysql/jdbc/Driver e vedi se lì dentro vedi la classe che java non riesce a trovare...
__________________
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Benissimo. La prima cosa che mi viene in mente è che qui non si parli di MySql ma di SQL Server di Ms. Sono due cose diverse.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 876
|
Non lo trova; mi dice FilenotFoundexception (impossibile trovare il percorso specificato).
Sai quale può essere il motivo? |
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
|
eh direi di si ora che faccio caso al percorso del jar
__________________
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:23.





















