Utilizzo di contatore o costante per la posizione del parametro

0

Supponiamo di avere il seguente codice Java:

int i = 0;

PreparedStatement statement = con.prepareStatement("SELECT * FROM table " +   
"WHERE field1 = ?, field2 = ?, field3 = ?...");

statement.set***(++i, fieldValue);

E ci sono 14 campi simili.

Quindi abbiamo un'altra istruzione preparata, ma questa volta vediamo questo:

i = 0;
PreparedStatement otherPreparedStatement = con.prepareStatement("SELECT * FROM table " +   
    "WHERE field1 = ?, field2 = ?, field3 = ?...")

statement.set***(++i, fieldValue);

Tutto nello stesso metodo.

Abbiamo segnalato questo come un errore incline e abbiamo raccomandato di utilizzare costanti come questo:

preparedStatement.set***(PARAMETER_X_INDEX, fieldValue);

Ora, so che avere questi molti parametri è solo sbagliato, ma non vedo un modo per rifattorizzare di usare meno.

Quali osservazioni si possono dire sul primo codice e sulla raccomandazione?

    
posta ElderMael 08.03.2016 - 22:44
fonte

0 risposte

Leggi altre domande sui tag