Access 2007 - problema connessione database con java

di il
1 risposte

Access 2007 - problema connessione database con java

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

  • Re: Access 2007 - problema connessione database con java


    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