2012-05-19 11 views
5

Voglio lavorare con un database basato su file utilizzando derby apache. Mi chiedevo se qualcuno può carificare come collegare & creare questo database utilizzando netbeans come IDE. Ho passato attraverso i manuali di derby cercando di capirlo, ma tutto quello che ho ottenuto era "Embedded Derby JDBC Database Connection", che mi è stato detto non è un approccio basato su file, e in entrambi i casi, la connessione non sembra funzionare . qualsiasi aiuto sarebbe molto apprezzatoconnessione a un database derby basato su file

+0

Penso che la "connessione JDBC DB Embedded Derby" sia la soluzione che stai cercando.Ho risposto di seguito descrivendo come utilizzare l'interfaccia utente IDE NetBeans corrente per manipolare il derby. In entrambi i casi i tuoi dati verranno infine archiviati in un file. La differenza principale è se si sceglie il percorso incorporato o il percorso del server client in cui il percorso del server client richiede una porta sull'host host che consente a più client di accedere al database contemporaneamente. – simgineer

risposta

1

Quando si scarica NetBeans 7.1.2, il Con il pacchetto "All" si ottiene l'application server Glassfish. Dopo aver installato w/glassfish, nell'IDE dovresti essere in grado di selezionare la scheda Servizi> Espandi database e dovresti vedere il DB Java. R. Fare clic su Java DB e selezionare Avvia server. Quindi R. Fare nuovamente clic e selezionare Crea database. Inserisci il nome db, l'utente e una password. Di solito uso l'APP sia per l'utente che per la password perché in questo modo diventa anche lo schema predefinito e non devo cambiare nulla per l'ambiente di produzione.

Ora nel gruppo DB Java dovresti vedere il nuovo database che hai creato. R. Clicca su quello e seleziona Connetti. Dovresti vedere una voce di connessione apparire sotto il gruppo Database. Espandi questo elemento e dovresti vedere lo schema APP in grassetto che indica che è lo schema predefinito. Espandi quello e R. Fai clic sulle tabelle seleziona Crea tabella e otterrai un interfaccia utente che ti aiuta a popolare una tabella. Ripeti fino a quando non vengono create tutte le tue tabelle. Altri modi per creare tabelle utilizzando l'ide è fare clic destro sulle tabelle e selezionare Esegui comando in cui è possibile eseguire DDL per definire lo schema delle tabelle. Questo è il modo in cui eseguo la creazione di db, salvando il mio script come file .sql in modo da poter eliminare il db e rieseguirlo di nuovo, se necessario.

Ecco un esempio dello script my dbinit.sql che utilizzo per creare le mie tabelle in derby.

create table usertable (
    username varchar(128) NOT NULL CONSTRAINT USER_PK PRIMARY KEY , 
    password varchar(128) NOT NULL, 
    email varchar(128) NOT NULL, 
    firstname varchar(128) NOT NULL, 
    lastname varchar(128) NOT NULL 
); 

create table grouptable(
    username varchar(128) NOT NULL, 
    groupid varchar(128) NOT NULL, 
    CONSTRAINT GROUP_PK PRIMARY KEY(username, groupid), 
    CONSTRAINT USER_FK FOREIGN KEY(username) REFERENCES usertable(username) 
     ON DELETE CASCADE ON UPDATE RESTRICT 
); 

insert into usertable(username,password,firstname,lastname) 
    values ('admin', '21232f297a57a5a743894a0e4a801fc3','',''); 
insert into grouptable(username,groupid) values ('admin', 'USER'); 
insert into grouptable(username,groupid) values ('admin', 'ADMIN'); 

Si può facilmente eliminare il database che hai creato facendo clic destro sul database, R. clic sul database che si desidera rimuovere e selezionare Elimina. e riutilizzare lo script per rigenerarlo.

enter image description here

Spero che questo aiuti! :)

4

Per crearne uno, l'url jdbc sarà: jdbc:derby:foo;create=true e creerà un database chiamato foo nella directory del sistema derby. Se vuoi crearne uno in una posizione assoluta sul tuo disco fisso, specifica un percorso assoluto. jdbc:derby:/home/me/foo;create=true.

Una volta creato il database, è possibile connettersi ad esso con lo stesso url oppure è possibile eliminare la parte ;create=true.

È possibile impostare la directory di sistema derby tramite le proprietà di sistema, ad es. System.setProperty("derby.system.homeSystem.setProp", "/home/bar/whatever");. Penso che avresti bisogno di fare questo prima di iniziare un database di derby, ma non ho mai provato a farlo in seguito. Ho trovato che impostare il sistema derby home per l'app e specificare l'url del database relativo per funzionare meglio, ma questa è una preferenza personale.

+0

quindi jdbc è la versione basata su file? –

+0

Sì, in Java, si interfaccia sempre con Derby tramite JDBC. jdbc: derby: è il prefisso per le connessioni incorporate. È diverso per le connessioni al database di rete. – Bill

+0

prima di tutto grazie per la risposta, in secondo luogo non riesco ancora a connettermi al database, ho capito che devo prima definire il database, e l'ho fatto attraverso l'interfaccia netbeans (non ho idea di come farlo altrimenti), e che mi ha dato l'url per il DB, che è jdbc: derby: history; create = true ho spostato tutti i file di derby jar nella directory "lib" del mio progetto. Ottengo ancora un errore "nessun driver adatto trovato", quindi ho controllato in altri forum, ma non di quello che hanno detto sembrano funzionare. Immagino che abbia a che fare con la directory, ma non riesco a capirlo ... –

0

Nel caso in cui si desidera avere un database basato su file a Derby, si dovrebbe scaricare, Derby

Decomprimere il file. Eseguire startNetworkServer.bat nella directory bin. Avvierà il server derby che ascolterà la porta 1527.

Ora nel tuo codice Java:

DriverName = org.apache.derby.jdbc.ClientDriver

ConnectionString = jdbc: derby: // localhost: 1527/schema_name; creare = true

Inoltre, è possibile interrogare il DB derby come facciamo in Oracle.

eseguire ij.bat situato nella directory bin. poi sul prompt:

connect 'specificare il collegamento url qui'

e si può sparare le query SQL, come la richiesta di Oracle.

Nel caso in cui si desidera eseguire server di derby sulla porta diversa, eseguire il seguente comando al cmd:

startnetworkserver.bat -p 1234

2

Certamente il driver che si desidera utilizzare è il driver incorporato in derby.jar. Piuttosto che entrare nella "parte codificante delle cose" dato che ci sono abbastanza esempi in esecuzione, mi piacerebbe usare netbeans stesso per fare tutto prima di iniziare la codifica.

Poiché utilizzo l'approccio incorporato per convertire i file wireshark/tcpdump/nmap nelle voci del database, uso un approccio leggermente diverso.

Poiché preferisco noi le versioni stabili più recenti di Derby invece della versione installata, ho un approccio leggermente diverso che mi permette di usare qualsiasi versione desideri e di mettere il database nella directory dei dati ar/w dove mai voglio nel file system.

  1. Creare: mkdir -p $ HOME/opt/derby e cd ~/opt/derby.
  2. Scarica ultima versione dal db.apache.org e unbundle è nella $ HOME/opt/derby/
  3. Creare il link simbolico: ln -s pwd/versionepwd/ultima.
  4. Creare il collegamento simbolico: ln -s pwd/latest pwd
  5. Netbeans di avvio.

Da qui in poi si può fare tutto in NetBeans:

  1. creare una libreria di Ant e lo chiamano "ASF-Derby-Emb.": Strumenti-> Ant Libraries-> Nuova libreria.
  2. Nel pannello delle impostazioni impostare classpath su /home/[loginid]/opt/derby/default/lib/derby.jar e, facoltativamente, aggiungere derbytools.jar.
  3. Fare clic sulla scheda sorgente e aggiunto nel percorso del codice sorgente se lo si è scaricato.
  4. Fare clic sulla scheda javadoc e e in/home/[loginid]/opt/derby/default/javadocs

Quando si arriva in codifica, basta aggiungere in ASF-Derby-Emb Biblioteca e sarà essere copiati automaticamente nel tuo 'dist.'

Ora configurare il JavaDB.

  1. Impostare la scheda Servizi: Finestra-> Servizi e selezionare quella scheda.
  2. Selezionare JavaDB e fare clic con il pulsante destro del mouse e arrestare JavaDB che potrebbe essere in esecuzione.
  3. Selezionare JavaDB e fare clic con il pulsante destro del mouse e fare clic sulla voce di menu Proprietà che visualizzerà una finestra di dialogo delle proprietà.
  4. Passare alla directory di installazione di JavaDB: in $ HOME/opt/derby/default.
  5. Lasciare il percorso della directory di installazione del database così com'è oppure accedere alla directory in cui si desidera inserirlo, ma assicurarsi di disporre dell'accesso in lettura/scrittura.
  6. fare clic su "OK" e ora si dispone di una diversa installazione di JavaDB e il percorso del database.

Semplicemente modificando la posizione del database è possibile inserire un database dove lo si desidera. Oppure è possibile ottenere la stessa cosa nel codice dell'URL: jdbc: derby: // directory di ubicazione del database.

In qualsiasi modo, ora posso impostare il mio database.

  1. selezionare JavaDB e fare clic destro e selezionare 'Create Database' e proprio fillin la finestra di dialogo e il database verranno inizializzate nella directory che è stato istituito nel file delle proprietà.
  2. Creare una connessione: selezionare JavaDB e quindi selezionare il nome del database che è stato creato.

Da questo punto ci sono tre possibilità:

  1. fare nulla e creare il codice necessario per creare le tabelle, ecc
  2. creare un progetto e creare una directory del progetto di livello superiore chiamato SQL e metti tutti gli script sql che definiscono le tabelle, ecc. in quella directory.
  3. Utilizzare la 'funzione integrata: Servizio-> jdbc: derby: // ??? e crea le tabelle usando la funzione che appare e ti permette di inserire la sql necessaria.

Personalmente, (2) trovo di essere l'approccio migliore, inizialmente. Se si dispone di script sql preesistenti con l'estensione .sql, semplicemente aprendoli sotto il progetto, verranno caricati nell'editor sql e potranno essere eseguiti lì.

In alternativa (3) può essere utilizzato e lo script ottenuto viene salvato.

In qualsiasi modo, molto può essere creato prima che inizi la codifica. Ci sono molti modi per farlo. Preferirei averli tutti creati prima della codifica - rende molto più facile lo sviluppo di test case e usando il precedente non devo saltare dentro e fuori da netbeans per modificare le cose.

Problemi correlati