Connettere Java ad Oracle

di il
22 risposte

Connettere Java ad Oracle

"Si sviluppi un database che permetta la descrizione e memorizzazione di diagrammi della tipologia Entitˆ-Relazioni, con supporto ad attributi (anche compositi e/o multivalore), chiavi, cardinalitˆ ecc. "

Salve, il testo sopra riportato è la traccia del progetto di basi dati. Non mi è ben chiara la traccia: intende forse che bisogna tradurre un diagramma E-R in un database? Nel senso che dato il diagramma bisogna inserire i dati in tabelle e costruire i relativi triggers, procedure, ecc...

22 Risposte

  • Re: Connettere Java ad Oracle

    giulio0 ha scritto:


    "Si sviluppi un database che permetta la descrizione e memorizzazione di diagrammi della tipologia Entità-Relazioni, con supporto ad attributi (anche compositi e/o multivalore), chiavi, cardinalità ecc. "
    Leggendo questo testo, mi fa pensare: devi progettare una base dati (insieme di tabelle e quant'altro, ecc...) che permette di descrivere in maniera generalizzata dei diagrammi Entità-Relazioni con le varie caratteristiche descritte.

    Pensa ad un classico esempio (minimale) di base dati: Studenti e Aule. Dove c'è la relazione uno-a-molti, uno studente è assegnato ad un'aula e un'aula ha N studenti.
    Non vuol dire che devi creare due tabelle STUDENTI e AULE ma dovresti creare delle tabelle es. ENTITA, ATTRIBUTI, ecc.. che servono a descrivere questo di Studenti-Aule come in generale qualunque altro tipo di diagramma.

    Io questo ho intuito ... poi potrei anche sbagliarmi. E se non mi sbaglio .... non è banale, ci devi "ragionare" un pochino ...
  • Re: Connettere Java ad Oracle

    Quindi non pensi che da un grafico E-R debba costruire un altro grafico in Class Diagrams? Io ho pensato questo. Secondo te devo scrivere un codice?
  • Re: Connettere Java ad Oracle

    giulio0 ha scritto:


    Quindi non pensi che da un grafico E-R debba costruire un altro grafico in Class Diagrams? Io ho pensato questo. Secondo te devo scrivere un codice?
    Ti ripeto quello che IO ho intuito/capito: devi realizzare un database (quindi ideare e realizzare un insieme di tabelle e quant'altro) che hanno lo scopo di descrivere e memorizzare dei diagrammi ER (Entità-Relazione).

    Ora, se questo che ho pensato è proprio quello che devi fare (ripeto, potrei anche sbagliarmi), allora innanzitutto: a) non è affatto "banale", c'è da ragionarci un pochino e b) bisogna valutare bene fino a che livello di dettaglio è necessario farlo. Soprattutto, giusto per essere chiari: una base dati come quella ipotizzata, a che scopo finale dovrebbe poi servire? Solo così come base dati dimostrativa? Per generare realmente il diagramma a livello proprio grafico (in immagine, in finestra, ecc..)? Per generare gli script SQL per le varie create table ecc...?

    Sì, una base dati come quella potrebbe servire per tutte queste cose, è solo questione del "livello di dettaglio" a cui si vuole arrivare per un certo scopo.
  • Re: Connettere Java ad Oracle

    @andbin, direi che non serve andare troppo lontano.
    Al momento basta capire come progettare il database per descrivere il grafo che rappresenta il diagramma E/R.

    E, ovviamente, lo si dovrebbe fare usando i diagrammi E/R

    Non e' "particolarmente" complicato, ma, certamente, non e' "banale"
  • Re: Connettere Java ad Oracle

    migliorabile ha scritto:


    @andbin, direi che non serve andare troppo lontano.
    Al momento basta capire come progettare il database per descrivere il grafo che rappresenta il diagramma E/R.

    E, ovviamente, lo si dovrebbe fare usando i diagrammi E/R
    Hai ragione migliorabile ... spesso penso un po' troppo "lontano" ... (ma sono così .. ).

    Se è sufficiente disegnare un diagramma ER che modella una base dati adatta a descrivere altri diagrammi ER .... ok! Concordo che non è particolarmente complicato, sebbene ci sia da ragionare un pochino.
  • Re: Connettere Java ad Oracle

    Mmh... capito. Però non essendo un progetto specifico come faccio a determinare gli attributi delle entità? Inserisco "CHIAVE PRIMARIA", "ATTRIBUTO 1",...,"ATTRIBUTO N"? Lo stesso vale per le relazioni, nel senso che le chiamo "RELAZIONE 1",...,"RELAZIONE N"? Inoltre come faccio a sapere il numero di entità e relazioni da inserire se è generico?
  • Re: Connettere Java ad Oracle

    giulio0 ha scritto:


    Mmh... capito. Però non essendo un progetto specifico come faccio a determinare gli attributi delle entità? Inserisco "CHIAVE PRIMARIA", "ATTRIBUTO 1",...,"ATTRIBUTO N"? Lo stesso vale per le relazioni, nel senso che le chiamo "RELAZIONE 1",...,"RELAZIONE N"?
    No, non ci siamo. Allora: innanzitutto secondo me una base dati che descrive diagrammi ER è abbastanza irragionevole che possa descriverne solamente uno di diagramma. Quindi servirebbe innanzitutto una entità-tabella concettualmente "a monte" di tutto ... quale secondo te?
  • Re: Connettere Java ad Oracle

    andbin ha scritto:


    giulio0 ha scritto:


    Mmh... capito. Però non essendo un progetto specifico come faccio a determinare gli attributi delle entità? Inserisco "CHIAVE PRIMARIA", "ATTRIBUTO 1",...,"ATTRIBUTO N"? Lo stesso vale per le relazioni, nel senso che le chiamo "RELAZIONE 1",...,"RELAZIONE N"?
    No, non ci siamo. Allora: innanzitutto secondo me una base dati che descrive diagrammi ER è abbastanza irragionevole che possa descriverne solamente uno di diagramma. Quindi servirebbe innanzitutto una entità-tabella concettualmente "a monte" di tutto ... quale secondo te?
    Allora io devo progettare un modello ER che memorizzi progetti ER in sostanza, giusto? A "monte" direi che andrebbe bene un'entità i quali sono "Num_entità" e "Num_relazioni"?
    Ho un dubbio: io non devo scrivere nemmeno una riga di codice in questo progetto?
  • Re: Connettere Java ad Oracle

    giulio0 ha scritto:


    A "monte" direi che andrebbe bene un'entità i quali sono "Num_entità" e "Num_relazioni"?
    No, una entità chiamata Diagramma. Quali attributi ha un diagramma? Beh, sicuramente un nome, poi eventualmente altro di "contesto" che non saprei se possa servire nella tua esercitazione (es. autore).

    Poi quale altra entità sta concettualmente "sotto" Diagramma?

    giulio0 ha scritto:


    Ho un dubbio: io non devo scrivere nemmeno una riga di codice in questo progetto?
    Se devi solo "disegnare" e basta, no, non serve del codice. Scrivere del codice per gestire una base dati come questa richiederebbe altri sforzi e soprattutto altre "specifiche" su come si vuole gestirla.
  • Re: Connettere Java ad Oracle

    A quanto pare bisogna fare il modello ed inoltre scriverla in Java. Adesso sto provando a creare una connessione con netbeans al database, mi sapete dire perché non va?
    
    package javadb;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    
    /**
     *
     * @author valerio
     */
    public class JavaDB {
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) throws Exception {
        
            getConnection();
        }
        
        public static Connection getConnection() throws Exception {
            
            try{
                
                
                String url="jdbc:oracle:thin:@//217.59.***.**:1527/javadb";
                String user = "Valerio";
                String pw = "password";
                
                
                
                Connection conn = null;
                
                conn = DriverManager.getConnection(url,user,pw);
                System.out.println("Connesso!");
                
                return conn;
                
            }catch(Exception e){
                System.out.println("Errore: " + e);
            }
            
            return null;
        }
        
    }
    I comandi sono copiati dalle slide del professore che li ha messi appositamente. Ho omesso i numeri dell'IP per privacy. L'output è:

    "Errore: java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@//217.59.***.**1527*/javadb
    BUILD SUCCESSFUL (total time: 0 seconds)"
  • Re: Connettere Java ad Oracle

    giulio0 ha scritto:


    A quanto pare bisogna fare il modello ed inoltre scriverla in Java.
    Ah, ok allora. (prima però pensa bene al modello concettuale ... poi al codice Java)

    giulio0 ha scritto:


    "Errore: java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@//217.59.***.**1527*/javadb
    Se l'url di connessione è giusto come forma (a vista mi pare di sì ma vado a memoria), allora vuol solo dire che ti manca il driver JDBC.
    Ti è stato dato il .jar del driver JDBC per il DB Oracle? Se no, ti è stato detto quale versione di Oracle DB viene usata per andare poi a cercare il driver appropriato? Precisa anche quale versione di Java stai usando.

    EDIT: anzi no, mi pare che quel // prima del IP non sia da mettere. Fai una ricerca in rete per sicurezza.
  • Re: Connettere Java ad Oracle

    1- file ojdbc8.jar da qui (Java 8 e sup., Oracle 18c)
    2- É file ojdbc6.jar da qui (Java 6 e sup., Oracle 11g).

    Questi sono i due file che andrebbero scaricati, io ho scaricato entrambi, una volta scaricati li ho importati nella libreria del progetto. Il mio dubbio se il localhost sia giusto (gli ultimi 4 numeri indicano il localhost, giusto? 1527?). Netbeans è la versione IDE 8.2
  • Re: Connettere Java ad Oracle

    giulio0 ha scritto:


    io ho scaricato i lsecondo perché corrisponde alla versione del mio Oracle
    Ok. Ma attenzione: c'entra anche (e soprattutto in questo caso di DB Oracle) la versione di Java.

    giulio0 ha scritto:


    devo scaricarli entrambi?
    Devi mettere "in classpath" solo uno.

    giulio0 ha scritto:


    Il mio dubbio se il localhost sia giusto (gli ultimi 4 numeri indicano il localhost, giusto? 1527?).
    No, 1527 è solo la porta. L'host/ip è quello prima.
  • Re: Connettere Java ad Oracle

    Mo ho messo entrambi i classpath e comunque non funziona. La versione di Oracle è 11g. Ma visto che Netbeans mi fa creare database non potrei creare un database e vedere il codice su come fa a connettersi? Sono andato su "Serivces" e vedo che la porta di un database di default è: 3306. Strano che sia diversa dalla 1527 no? HO comunque provato a cambiare la porta in 3306 ma non va
Devi accedere o registrarti per scrivere nel forum
22 risposte