Connesssione ad access tramite codice java

di il
11 risposte

Connesssione ad access tramite codice java

Buonasera a tutti
ho necessita di accedere ai dati di un database access usando java, e' il linguaggio che sto studiando adesso, pero ho le seguenti difficolta.
non riesco ad impostare windows come ho trovato scritto che dovrei fare:
Pannello di controllo -> strumenti di amministrazione -> origine dati (odbc) -> in DSN utente (potrebbe essere necessario farlo in DSN di sistema) cliccare aggiungere e in nome origine dati mettere il nome del DB, es. prova.mdb, poi clickare su “seleziona” e inserire il path del DB.
ecco io quanto faccio aggiungi non mi da la possibilita di aggiungere il nome del DB,
come faccio?
se qualcuno mi sa aiutare per favore
ciao

11 Risposte

  • Re: Connesssione ad access tramite codice java

    Cosa e Dove hai trovato scritto?
  • Re: Connesssione ad access tramite codice java

    Basta cercare su google alla voce connettersi a access con java
  • Re: Connesssione ad access tramite codice java

    starsinger2000 ha scritto:


    basta cercare su google alla voce connettersi a access con java
    Il thread l'hai aperto tu, il problema "è tuo", dici che "hai trovato scritto" e chiedi a noi di cercare quello che tu hai trovato e che non funziona?
    E' nel tuo interesse mettere il forum nelle condizioni di aiutarti (e nell'interesse del forum in generale quello di vedere un thread risolto). Di questo passo non si va da nessuna parte.
  • Re: Connesssione ad access tramite codice java

    Piu semplicemente senza andare sull'origine dati (ODBC) puoi fare così nel sorgente.
    
    Connection c;
    c=DriverManager.getConnection(jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=path]);
    
    dove path sarà il percorso del tuo DB.
    esempio
    C:\\user\\admin\\DB\\database.mdb

    se il tuo DB ha estensione accdb, basta cambiare *.mdb con *.accdb

    Così non ha bisogno di fare alcun assegnazione sul sistema.

    P.S. fa attenzione il bridge JDBC-ODBC in Windows 8 è stato rimosso per cui devi usare differenti driver.

    Ciao
  • Re: Connesssione ad access tramite codice java

    Grazie schumy2000
    comunque quelle righe di codice non mi funzionano, calcola che io uso java SE 8 e windows 7,
    cmq in internet ho trovato la soluzione al link
    http://stackoverflow.com/questions/21955256/manipulating-an-access-database-from-java-without-odbc
    adesso funziona e riesco a connettermi correttamente al database access.
    cmq mi dispiace evidentemente non mi sono spiegato bene, a me premeva trovare una soluzione al mio problema, perche' quanto io trovavo in rete, relativamente a come usare l'interfaccia JDBC per connettermi ad access non mi funzionava. praticamente tutti i siti italiani riportavano quella soluzione, solo che a me la possibilita di mettere il db access come origine dei dati, sul pannello di controllo, non mi appariva. il mio post era solo relativo a questa incongruenza tra quanto trovavo in rete e quanto appariva concretamente sul mio computer, e speravo che magari qualcuno o avesse avuto in passato il mio stesso problema, e magari mi comunicava come lo avesse risolto, oppure che mi sapesse dare delle indicazioni.
    pensavo che fosse chiaro, ripeto forse mi sono spiegato male.
    alla prossia
    ciao
  • Re: Connesssione ad access tramite codice java

    Non so a me quel pezzo di codice funziona e mi rende libero da non mettere il mio DB come origine dei dati.
    Per quante installazioni io possa fare non devo andare a toccare alcuna impostazione.
    Se cercavi questa incongruenza allora non dovevi postare dentro il forum di java, bensì quello relativo alle impostazioni del sistema operativo.

    Ciao.
  • Re: Connesssione ad access tramite codice java

    Da Java 8 il bridge JDBC-ODBC non esiste più, è stato tolto (e per fortuna, visti i problemi che aveva), quindi quel codice non funziona più. Per non parlare del fatto che già da prima quel bridge aveva notevoli problemi tra versioni di Java a 32 bit e versioni a 64 bit. Insomma: hanno fatto una cosa buona a toglierlo di mezzo.

    La soluzione a tutti i tuoi problemi si chiama UCanAccess.

    Cerca su google, scarica il driver e hai risolto tutti i problemi.


    Ciao.
  • Re: Connesssione ad access tramite codice java

    Ciao Lele,
    A parte che anch'io uso UCanAccess visto che sul portatile ho win 10 e java 8.
    Ma...perché problemi? non ho mai notato particolari problemi sul bridge JDBC-ODBC.
    Spero in una tua illuminazione.
  • Re: Connesssione ad access tramite codice java

    Cia schumi.
    Io, purtroppo, mi ci sono scontrato più volte con JDBC-ODBC (sebbene agli inizi lo trovassi molto comodo, tanto che, lo sai, ne ho scritto anche una pillola di là). Non tanto sulla questione Microsoft Access, con cui mi sono dovuto comunque scontrare al passaggio sui sistemi a 64 bit e, maggiormente, quando ho avuto a che fare con macchine in cui c'è Java 8 installato, quanto con la connessione a DBMS diversi... in particolare su DB2. Ho trovato molti (ma molti) problemi nella conversione dei tipi di dato (alcuni tipi di dato, semplicemente, si rifiutava di leggerli, altri perdevano in precisione o venivano completamente stravolti) e molti altri nella lettura di grossi recordset (ad un certo punto, semplicemente, smetteva di leggere i recordset e sembrava che i risultati fossero finiti, quando non era così). Una cosa molto fastidiosa con cui mi sono dovuto scontrare è l'impossibilità di effettuare letture dei campi per un determinato record che non fossero esattamente in ordine; esempio:
    
    SELECT campo1, campo2, campo3
    FROM tabella
    
    Una cosa di questo tipo è impossibile:
    
    ResultSet rs = ...;
    while( rs.next() ) {
       String campo2 = rs.getString(2);   // Legge il secondo campo
       String campo1 = rs.getString(1);   // non è in grado di "tornare" al campo precedente: exception
       String campo3 = rs.getString(3);
    }
    
    In questo modo sei costretto a reperire prima tutti i campi del ResultSet esattamente nell'ordine 1, 2, 3 e poi usarli nel codice anche quando non ne avresti bisogno...

    Insomma... tante cose che messe tutte assieme rendono davvero la vita difficile.
  • Re: Connesssione ad access tramite codice java

    schumy2000 ha scritto:


    
    Connection c;
    c=DriverManager.getConnection(jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=path]);
    
    E se sul pc del cliente non è installato il driver di Access che si fa?
  • Re: Connesssione ad access tramite codice java

    Ciao,

    premetto che non so se potrà essere utile visto lo scenario molto semplice del mio caso
    .... ma giusto per condividere.

    Scenario :
    un DB Access 97 su Red Hat con una sola tabella, solamente da leggere, senza tipi di campi "rognosi"
    e con solo qualche decina di miglia di records. JVM 1.6.X

    In questo semplice scenario jackcess funziona
    ed è un solo jar da portarsi dietro senza bisogno di installare nulla.

    Io l'ho usato 3 anni fa e forse nel frattempo lo hanno migliorato
Devi accedere o registrarti per scrivere nel forum
11 risposte