View Full Version : [java]collegamento a database e driver
Vorrei scrivere una semplice applicazione con java che mi si connette a un database che può essere di qualsiasi tipo.
Per quanto riguarda i driver per la connessione ho visto che per ogni database esistono driver jdbc di diversi "livelli": 1,2,3,4.
Io ad esempio ho installato postgresql sul computer e mi sono creato un db dentro. Ho anche scaricato i driver di tutti i livelli, che sono file jar.
Vorrei sapere:
1)dove vanno messi i file .jar del driver: dentro la jvm? in che cartella? va bene anche dentro il package del nostro progetto java?
2)qual'è il nome del driver che va messo in Class.forname("nomedriver")? Voglio dire che ad esempio il nome del file-driver di livello 4 per postgresql che ho scricato è postgresql-8.3-603.jdbc4 ma non credo sia questo il nome da mettere come "nomedriver":come si fa in generale anche per altri rdbms a capire qual'è il vero nome del driver? La stessa domanda vale per il nome da mettere in getconnection("nome")
3)per i driver di livello 1(non so se anche per il 2) serve che nel sistema sia stato installato un driver odbc per il db che vogliamo usare. Potete dirmi come si installa il driver odbc su win e su linux o rimandarmi a qualche how-to preferibilmente in italiano?
grazie
Vorrei scrivere una semplice applicazione con java che mi si connette a un database che può essere di qualsiasi tipo.
Per quanto riguarda i driver per la connessione ho visto che per ogni database esistono driver jdbc di diversi "livelli": 1,2,3,4.
Io ad esempio ho installato postgresql sul computer e mi sono creato un db dentro. Ho anche scaricato i driver di tutti i livelli, che sono file jar.
Vorrei sapere:
1)dove vanno messi i file .jar del driver: dentro la jvm? in che cartella? va bene anche dentro il package del nostro progetto java?
2)qual'è il nome del driver che va messo in Class.forname("nomedriver")? Voglio dire che ad esempio il nome del file-driver di livello 4 per postgresql che ho scricato è postgresql-8.3-603.jdbc4 ma non credo sia questo il nome da mettere come "nomedriver":come si fa in generale anche per altri rdbms a capire qual'è il vero nome del driver? La stessa domanda vale per il nome da mettere in getconnection("nome")
3)per i driver di livello 1(non so se anche per il 2) serve che nel sistema sia stato installato un driver odbc per il db che vogliamo usare. Potete dirmi come si installa il driver odbc su win e su linux o rimandarmi a qualche how-to preferibilmente in italiano?
grazie
1) è importante che i jar siano indicati nel classpath. Che ambiente utilizzi? NetBeans e Eclipse ti consentono di farlo facilmente
2) per esempio per mysql è: com.mysql.jdbc.Driver: basta che apri il file .jar in WinZip, raggiungi la classe driver: ogni cartella che attraversi è un elemento che compone la stringa finale, separata da punti.
3) Per il tipo 1 e 2 dovrebbero essere necessarie le librerie di accesso al db (che potrebbero essere state scritte in altri linguaggi). Postgres non ho mai provato a usarlo su java, comunque credo che anche questo caso sia possibile evitare di copiare librerie in giro impostando opportunamente il CLASSPATH.
se ti interessa, ho già sviluppato una roba del genere: da un file di configurazione della applicazione leggevo quale driver attivare, come formattare la stringa di connessione, etc etc... mi è servito per creare un programma di test per misurare alcuni indici di performance su diversi db.
Io uso principalmente eclipse ma anche netbeans, come come si fa a importare i driver nel classpath? dove vanno messi a mano o con gli ide?
grazie
su Eclipse vai nelle proprietà del progetto, sul menu a sx scegli "java build path", seleziona la scheda "Libraries", clicca pulsante "Add External Jar..."
Su netbeans vai sulle proprietà del progetto, seleziona a sx "Libraries" e clicca "Add Jar/Folder"
Scusa, un ultima cosa. Come avevo scritto sai come si fa ad aggiungere un driver-connessione odbc a windows o a linux?
Per win si va in pannello di controllo->strum. di ammin->dorgenti dati o qualcosa del genere e poi?
In lin non lo so proprio.
Poi scusa ma odbc sono driver o connessioni perchè in win ad esempio ho visto da qualche parte che si crea un anuova connessione ad ex con access
Grazie ancora
andrea.ippo
07-03-2008, 19:08
jdbc:postgresql://localhost/NOME_DB
localhost naturalmente se il tuo db è locale, come presumo.
Abbiate pazienza ma ancora non ci siamo. La mia richiesta è un'altra.
Per maggiore chiarezza la riporto:
Come avevo scritto sai come si fa ad aggiungere un driver-connessione odbc a windows o a linux?
Per win si va in pannello di controllo->strum. di ammin->sorgenti dati o qualcosa del genere e poi?
In lin non lo so proprio.
Poi scusa ma odbc sono driver o connessioni? Perchè in win ad esempio ho visto da qualche parte che sempre in pannello di controllo..... si crea una nuova connessione odbc ad ex con access. Sbaglio?
Per win si va in pannello di controllo->strum. di ammin->sorgenti dati o qualcosa del genere e poi?
io una volta l'ho fatto , ( ma mi sa che serve solo x aggiungere db access , io l'ho fatto x access quindi ti diro come si fa x acccess)
Pannello di controllo -->
Strumenti di amministrazione -->
Origine Dati (ODBC)
poi nel tab "DNS di Sistema" premi "aggiungi" . Nella finestra che ti si apre (Crea nuovo origine dati) , scegli il driver ( Driver di Microsoft Access *.mdb) e premi il tasto fine.
img (http://www.vladix.biz//public/mdb/selDriver.jpg)
A questo punto ti si apre una nuova finestra (Configurazione ODBC per Microsoft Access) . Dai un nome e una desccrizione al tuo database , e premendo il tasto seleziona , scegli il tuo database access ( che e un file .mdb , che sta ... dove lo hai salvato ) .
img (http://www.vladix.biz//public/mdb/selDatabase.jpg)
A questo punto chiudi tutte le finestre aperte premendo il tasto ok .
poi ti crei una classe x la connessione ...
package biz.vladix;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MDBConnection {
public MDBConnection() {
}
public static Connection getConnection (){
Connection connection = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
} catch (IllegalAccessException e) {
// TODO
} catch (InstantiationException e) {
// TODO
} catch (ClassNotFoundException e) {
// TODO
}
try {
connection = DriverManager.getConnection("jdbc:odbc:mydb" , "username" , "password"); // mydb e il nome che tu gli dai al db
} catch (SQLException e) {
// TODO
}
return connection;
}
}
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.