Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    3

    Query su più DB Postgres

    Ciao a tutti,

    Non so come gestire l'esecuzione di query su diversi db.
    Ecco le mie connessioni:
    ..
    Class.forName("org.postgresql.Driver");
    cSib = DriverManager.getConnection("jdbcostgresql://localhost/postgres?user=postgres&password=postgres"); //Server SIB
    cB1 = DriverManager.getConnection("jdbcostgresql://localhost/DBBiblio1?user=postgres&password=postgres"); //Server Biblio1
    cB2 = DriverManager.getConnection("jdbcostgresql://localhost/DBBiblio2?user=postgres&password=postgres"); //Server Biblio2
    ..

    Ma come faccio ad eseguire una query tipo:

    ..
    queryTitolo = "SELECT * FROM biblio1 " +
    "WHERE titolo LIKE ? UNION SELECT * " +
    "FROM biblio2 WHERE titolo LIKE ?";
    ..

    Dove ovviamente biblio1 sta in DBBiblio1 e biblio2 sta in DBBilbio2, e sono omogenee.

    Se le tabelle stanno sullo stesso server non c'è problema, ma se creo 2 server con le stesse tabelle non so come fare per unire quantomeno i risultati.
    Con i tentativi che ho fatto trovo solo risultati relativi a una query o l'altra.
    Ecco come ho implementato la soluzione ma non va come dico io:

    ..
    queryTitolo1 = "SELECT * FROM biblio1";
    queryTitolo2 = "SELECT * FROM biblio2";

    preparedstatement = cB1.prepareStatement(queryTitolo1);
    preparedstatement = cB2.prepareStatement(queryTitolo2);
    ..
    //unione risultati ???

    Grazie un PetaByte di volte!

    Marco
    I need some oxygen

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    se hai bisogno di eseguire una sola query, l'unica è fare un dblink da un db all'altro
    ma con postgres non saprei come fare

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    3
    Il discorso è più complesso.
    Il software deve implementare un servizio di prestito inter-bibliotecario con un dbms distribuito e quindi saranno almeno 10 query più o meno complesse che interrogano 3 dbserver.

    Ciò che non riesco a superare è il fatto di gestire le query e i resultset provenienti da più connessioni.

    Ho cercato in giro per il web ma non ho trovato niente!
    I need some oxygen

  4. #4
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    non saprei come coinvolgere in un'unica query piu' db. Credo che cercherei di farmi ritornare il minor numero di informazioni possibili (fintanto che rimangono utili e significative ovviamente) da ciascuna query, istanzierei le entita' java corrispondenti e poi vedrei di cavarmela in qualche modo controllando via codice java le proprieta' delle entita' che ho istanziato. Se il modello dei dati e' stato disegnato bene, e' probabile che tu non debba incontrare troppe difficolta' nel "navigare" tra gli oggetti e nel selezionare tra tutte le entita' che hai a disposizione, solo quelle che rispondono ai parametri della tua ricerca. Ovviamente sto parlando in maniera totalmente teorica visto che non ho idea della complessita' delle tue ricerche, non ho idea di come sia stato definito il tuo modello dei dati e soprattutto, non ho idea di come fare un dblink altrimenti il problema sarebbe gia' stato risolto in partenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    3
    Mooolto semplice.

    A parole ecco il procedimento:

    • Eseguo la prima query (fino a UNION escluso)
    • inserisco i dati nella mia JTable
    • prendo il parametro che mi indica fino a quale riga della JTable sono arrivato
    • eseguo la seconda query (da UNION escluso)
    • inserisco i dati nella mia JTable partendo dal parametro "riga" preso dal resultset precedente


    That's All Folk!!

    Grazie a tutti!
    I need some oxygen

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.