Access 2007 - problema connessione database con java

di Anonimizzato9266 il
1 risposte
Salve a tutti sono nuovo del forum e ho subito un problemino da proporvi che probabilmente avrà una soluzione banale ma che non sono riuscito a risolvere.

allora il problema è il seguente devo connettere un db fatto con access2007 al mio programmino java cominciamo dalle cose banali:

1- Devo importare qualche libreria in particolare ?
2- Sia la connessione tramite DSN che tramite percorso non vanno, di seguito posto il codice

public class Database {

static private Connection defaultConnection;
static String driver ="sun.jdbc.odbc.JdbcOdbcDriver";
static String url = "jdbc.odbc.MYSDN";

public Database()
{

}

public void nuovaConnessione() throws SQLException, ClassNotFoundException {
try
{
//CARICA IL DRIVER E QUINDI REGISTRALO
Driver d = (Driver)Class.forName(driver).newInstance();
}
catch (Exception ex)
{
JOptionPane.showMessageDialog(null,"Driver non trovato");
}
try
{
System.out.println("Qui ci arrivo");
defaultConnection = DriverManager.getConnection("jdbc:odbcriver={Microsoft Access
Driver (*.mdb,*.accdb)};DBQ=C:\\Users\\Marco\\Desktop\\italpol.accdb");

defaultConnection = DriverManager.getConnection("url");
System.out.println("Qui non ci arrivo");
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null,"Connessione fallita");
e.printStackTrace();
}

}

quando uso url all'interno come parametro per DriverManager.getConnessione("url") da questo errore:
No suitable driver found for url
quando uso il percorso invece :
nome origine dati non trovato e driver predefinito non specificato

Ho lasciato entrambi i tentativi con i percorso e con il DSN ma ovviamente li provo uno alla volta.
Cortesemente c'è qualcuno che può darmi un aiuto grazie ciao a tutti
Marco

1 Risposte


  • Ciao,
    ipotizzando che tu abbia gia registrato sotto ODBC la tua base di dati ho l'impressione che il problema stia nella definizione dell'url.
    static String url = "jdbc.odbc.MYSDN"; 
    che dovrebbe invece essere:
    static String url = "jdbc:odbc:MYSDN"; 
    Utilizzando l'accesso indiretto al tuo DB avendo definito l'url come stringa non puoi scrivere:
    defaultConnection = DriverManager.getConnection("url");

    perchè il metodo getConnection vede come parametro "url= url". Devi scriverlo così:
    defaultConnection = DriverManager.getConnection(url);
    In questo modo verrà assegnato il valore di url "url= jdbc.odbc.MYSDN" e non la stringa url.
    Se pensi di utilizzare l'accesso diretto al tuo DB, il problema invece è sempre l'url.
    defaultConnection = DriverManager.getConnection("jdbc:odbcriver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=C:\\Users\\Marco\\Desktop\\italpol.accdb"); 
    che dovrebbe invece essere:
    defaultConnection = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\Marco\\Desktop\\italpol.accdb"); 
    Se mi è concessa una curiosità vorrei sapere perchè procedi così:
    Driver d = (Driver)Class.forName(driver).newInstance();
    Di solito l'utilizzo di oggetti Driver senza passare per il DriverManager è sconsogliato.
    Spero di essere stato utile.
    [/color]
Devi accedere o registrarti per scrivere nel forum
1 risposte