PDA

View Full Version : [java]connessione a db, oracle, possibilmente indolore...


dnarod
08-06-2007, 17:34
sto facendo progetto per l uni e mi piacerebbe attaccare il db a java per usarlo e soprattutto presentarlo in maniera decente; per non saper ne leggere ne scrivere, ho capito che non ci va poi una scienza, bastano un paio di righe semplici semplici e tutto dovrebbe funzionare...dico tutto perche ovunque legga si parla di "driver" che devono essere installati e configurati; il guaio è che dovro presentare quella roba all uni, in laboratorio (che differisce parecchio dal mio ambiente di lavoro abituale)...per farla breve, non ho voglia di lavorare qui a casa per poi dover fare uno sbattone allucinante e aggiustare tutto un altra volta quando saro all uni: non esiste un modo veloce e indolore per connettersi a un db oracle senza dover installare e settare mille cagate? anche qualcosa di gia pronto, tanto non essendo un punto richiesto dal progetto me lo posso gestire come meglio credo...

andbin
08-06-2007, 17:59
sto facendo progetto per l uni e mi piacerebbe attaccare il db a java per usarlo e soprattutto presentarlo in maniera decenteScusa la domanda, devi usare per forza Oracle? Altrimenti potresti usare dei database "standalone" come ad esempio Derby (http://db.apache.org/derby/) oppure HSQLDB (http://hsqldb.org)

PGI-Bis
08-06-2007, 18:13
senza dover installare e settare mille cagate

No.

Detto questo, non è che poi la quantità di cacca sia soverchiante. Nella sua totalità, la questione della connessione diretta ad una base dati consiste in tre semplici passaggi.

1. Trovare il file jar che contiene il driver JDBC per quella specifica base dati. E' uno solo.
2. Tramite la documentazione Java delle classi contenute in quel jar, scovare la classe che concretizza l'interfaccia java.sql.DataSource
3. Creare un'istanza di quel data source e attraverso i suoi metodi (che sono espliciti tipo setUserName, setPassword, setDataBaseName, setPort eccetera) inizializzare i dati di connessione.

Fine. A questo punto il DataSource ti fornirà un oggetto Connection e tramite quell'oggetto puoi interrogare la base dati a colpi di SQL.

L'unico "intoppo" sta nel trovare i dati di connessione. Come si chiama la base dati? Su che porta gira il server di database? Qual'è indirizzo della macchina che lo fa rotolare? Qual'è il nome utente? Qual'è la password? Puoi anche schiaffarli in un file di configurazione o delegare l'intera pappina della connessione ad un JavaScript.

Se non vuoi macinarti troppo i finferli puoi usare una base dati "embeddable" (Berkeley DB per restare in casa Oracle): te lo porti dietro insieme al programma e non hai problemi di riconfigurazione.

Se i finferli vuoi lasciarli assolutamente tranquilli fai a meno di quel pezzo d'antiquariato che è un database, ti crei un bel logger e vai via liscio come l'olio.

PGI-Bis
08-06-2007, 18:14
vaffhttp... :D

Il no era riferito al "posso evitare mille cagate". Ho modificato il messaggio per chiarire.

dnarod
09-06-2007, 08:15
thanks! mi sollevate, o meglio, mi levate la speranza :)
devo usare oracle, tassativamente...pazienza, ho gia il driver, vorra dire che mettero tutto a posto e usero quello...spero di non avere problemi strani, anche se leggendo un po in giro ho capito perfettamente come funziona la giostra...

dnarod
09-06-2007, 08:33
boh, andare va e fa cio che deve fare...l unico sbattone è per il jar da un mega e mezzo che mi devo sciroppare...tra l altro sperando che in lab tutto funzioni per infusione divina senza dover limare qua e la...

non ho solo capito come mai il primo "tentativo" non abbia funzionato...nel senso che nella documentazione di oracle ci sono scritti 3 modi per attaccarsi al db: thin, oci8 e un altro che non ricordo...thin non va, dice che non mi riconosce il sid (nonostante sia discretamente certo di non sbagliarlo)...mentre oci8 non da problemi

dnarod
09-06-2007, 09:31
è una domanda quasi al vento, ma ci provo lo stesso...non riesco a chiamare ste benedette procedure...tipo, "execute blabla(blabla);" e mi dice che l sql non e valido...inoltre quando faccio "set serveroutput on" mi dice "opzione mancante o non valida"...gia i db sono una delle cose che mi piace di meno, ma bloccarsi su stupidaggini simili e frustrante :(