Ho alcuni comandi SQL che sto cercando di trovare il modo migliore per averli nel codice in modo che:
1. Sono molto leggibili
2. Sarebbero facili da aggiornare
3. Non saranno le spese generali dovute a molte stringhe.
Ho qualcosa come la seguente che non è risultata troppo buona.
public class SQLHandler {
private static final String CUSTOMER_TABLE = "customer_table";
private static final String CUSTOMER_ID = "id";
private static final String CUSTOMER_FIRST_NAME = "first_name";
private static final String CUSTOMER_LAST_NAME = "last_name";
private static final String CUSTOMER_TELEPHONE = "customer_telephone";
private static final String REP_ID = "customer_representative_id";
private static final String REP_TABLE = "representative_table";
private static final String REP_ID = "id";
private static final String REP_FIRST_NAME = "first_name";
private static final String LAST_LAST_NAME = "last_name";
private static final String DEPT_ID = "rep_dep_id";
public static ArrayList<Representatives> getRepresentatives(int customerId) {
StringBuilder sb = new StringBuilder();
sb.append("SELECT")
.append(REP_TABLE).append(".").append(REP_ID)
.append(",")
.append(REP_TABLE)
.append(".")
.append(REP_FIRST_NAME).append(" FROM")
.append(CUSTOMER_TABLE).append(" JOIN ").append(REP_TABLE)
.append("ON").append(REP_TABLE).append(".")
.append(REP_ID).append("=").append(CUSTOMER_TABLE)
.append(".").append(REP_ID)
.append(" AND")
.append(CUSTOMER_TABLE).append(".").append(CUSTOMER_ID)
.append("=").append(String.valueOf(customerId));
// do query
}
}
Come puoi vedere, nessuno dei (3) è soddisfatto.
Non riesco facilmente ad aggiornare la query e se l'avessi vista di nuovo non ricorderei esattamente di cosa si trattava.
Come posso migliorare questo? (Impossibile formattarlo correttamente in post)