PDA

View Full Version : [JAVA] Eseguire una query su più tabelle


iPako
10-04-2015, 15:22
Ciao a tutti sono una new entry nella programmazione e mi trovo davanti a questo problema:
voglio eseguire una "semplice" query a un database mysql ma voglio costruire il mio progetto java seguendo il pattern DAO/MVC per abituarmi ad ottenere una certa modularità.

la query che voglio eseguire è di questo tipo

SELECT c1.name characteristic, c2.name subcharacteristic, rls.plugin_name, rl.name, rl.language, rl.status

FROM db.caratteristiche c1, db.caratteristiche c2, db.regole rl

where c1.id = c2.parent_id
and rl.default_characteristic_id = c2.id
and rl.status <> "DEPRECATED"
and rl.language = "java"

in sostanza la query agisce sulle due tabelle "caratteristiche" e "regole" del database db

ho già provato con successo a fare tutto in un unica classe (main) molto semplicemente, apro connessione e eseguo query, ma una volta suddivisi i vari package non saprei come e dove effettuare la query.
In particolare, ho creato le entity (bean) che mi rappresentano le due tabelle nel package model, ho creato i due DAO per le due entity nel package DAO che si occupano della comunicazione col db. Ma dove eseguo la query in oggetto? non so se sono stato chiaro (probabilmente no) ma vi sarei grato se mi forniste qualche chiarimento :help:

creareunblog
12-04-2015, 18:08
le query direi nel DAO! con metodi del tipo:



public Pojo getNonsocosa(parametri){

//query

return pojo;

o

return List<Pojo>;

}

creareunblog
12-04-2015, 18:10
ehm, con pojo voglio direi entity bean (è un sinonimo hehehe)

iPako
13-04-2015, 08:51
le query direi nel DAO! con metodi del tipo:



public Pojo getNonsocosa(parametri){

//query

return pojo;

o

return List<Pojo>;

}

Intanto grazie per la risposta :) , ma in 'quale' entity bean (o pojo) fare la query visto che la select prende informazioni da entrambe le tabelle dei bean?

edit. mi rispondo da solo, creo semplicemente una nuova entity con attributi quelli che tocco dall'una e dall'altra tabella. Dovrebbe andare