Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Parametri nominali con JDBCTemplate

Semplificare la manutenzione e la leggibilità delle query
Semplificare la manutenzione e la leggibilità delle query
Link copiato negli appunti

Sempre all'insegna della semplicità, Spring aggiunge alla programmazione JDBC il supporto ai parametri nominali, consentendo l'utilizzo di label come segnalibri al posto del classico punto interrogativo (?). Questo da un lato favorisce la leggibilità delle query e dall'altro elimina possibili complicazioni dovute alla posizionalità dei parametri.

In Spring questa funzionalità viene offerta sia attraverso l'utilizzo diretto della classe NamedParameterJdbcTemplate, che grazie al supporto del SimpleJdbcTemplate visto in precedenza. Quest'ultima è la soluzione adottata per il prossimo esempio.

Il binding tra i parametri identificati dalle label e i relativi valori avviene tramite la classe SqlParameterSource, la cui implementazione base è la MapSqlParameterSource.

public class BookSimpleJdbcDaoSupportNamedValue extends SimpleJdbcDaoSupport {
  public void update(Book book) {
	  MapSqlParameterSource parameters = new MapSqlParameterSource();
	  parameters.addValue("isbn", book.getIsbn());
		parameters.addValue("author", book.getAuthor());
		parameters.addValue("title", book.getTitle());
	  getSimpleJdbcTemplate().update("update books set author = :author, title = :title where isbn = :isbn",
	                                 parameters);
	}
  // ...
}

SqlParameterSource offre anche un'altra implementazione in grado di effettuare un mapping automatico dei parametri, la classe BeanPropertySqlParameterSource.

public class BookSimpleJdbcDaoSupportNamedValue extends SimpleJdbcDaoSupport {
  public void insert(Book book) {
    // Binding automatico dei parametri
    SqlParameterSource parameters = new BeanPropertySqlParameterSource(book);
    //Inserimento
    getSimpleJdbcTemplate().update("insert into books (isbn, author, title) values (:isbn, :author, :title)",
	                               parameters);
  } 
  ...
}

Finora abbiamo visto come il framework Spring si integri con la tecnologia JDBC per fornire uno strumento molto flessibile per l'accesso ai dati. Nelle prossime lezioni vedreomo come integrare il framework di persistenza Hibernate.


Ti consigliamo anche