Domanda

Sto lavorando su un progetto di gruppo per la classe e stiamo provando CheckStyle.

Sono abbastanza confortevole con Java, ma non hanno mai toccato JDBC o fatto alcun lavoro di database prima di questo.

Mi chiedevo se esiste un modo elegante per evitare errori di numero magico nelle chiamate PreparedStatement, considerare:

        preparedStatement = connect.prepareStatement("INSERT INTO shows "
                + "(showid, showtitle, showinfo, genre, youtube)"
                + "values (default, ?, ?, ?, ?);");
        preparedStatement.setString(1, title);
        preparedStatement.setString(2, info);
        preparedStatement.setString(3, genre);
        preparedStatement.setString(4, youtube);
        result = preparedStatement.executeUpdate();

I metodi setString vengono segnalate come numeri magici, finora ho solo aggiunto i numeri 3-10 o giù di lì alla lista da ignorare per i numeri di magia, ma mi chiedevo se ci fosse un modo migliore per andare su come inserire questi valori nella dichiarazione . Ho anche chiedere per qualsiasi altro consiglio che viene in mente visto che il codice, vorrei evitare lo sviluppo di eventuali cattive abitudini, per esempio dovrei usare Statement o è PreparedStatement bene? Sarà che mi permetta riferisco a nomi di colonna, invece? È questo ideale? ecc ...

Grazie!

È stato utile?

Soluzione

Crea un metodo di utilità che fa qualcosa di simile:

public static void setValues(PreparedStatement preparedStatement, Object... values) throws SQLException {
    for (int i = 0; i < values.length; i++) {
        preparedStatement.setObject(i + 1, values[i]);
    }
}

e usarlo come segue:

setValues(preparedStatement, title, info, genre, youtube);

o

Object[] values = {
    title, info, genre, youtube
};

setValues(preparedStatement, values);

Più "buone pratiche" in materia di JDBC di base codifica può essere trovato in questo articolo .

Spero che questo aiuti.

Altri suggerimenti

vorrei suggerire che anche se non si utilizza Primavera, provare a utilizzare il NamedParameterJdbcTemplate invece . Date un'occhiata a http: //www.dzone .com / tutorials / java / primavera / spring-nome-parametro-jdbc-template.html per un tutorial su come usarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top