JDBC ResultSet offre metodi getObject, getInt, getString, ecc. E PreparedStatement ha analoghi setter. A parte la sicurezza del tipo in fase di compilazione, i getter/setter di tipo specifico hanno qualche (dis) vantaggio o è OK usare ovunque getObject/setObject?JDBC get/setObject vs. get/setSpecificType
7
A
risposta
5
Non ci sono veri (tecnici) vantaggi tecnici. Potrebbero essere solo svantaggiosi dal punto di vista funzionale se in seguito stai eseguendo il controllo ortografico/il casting.
Io stesso uso ResultSet#getObject()
solo quando il valore restituito è una primitiva che è DB-defaulted a NULL
e il valore dichiarato è un wrapper per la primitiva. Per esempio. Integer age
:
user.setAge(resultSet.getObject("age") != null ? resultSet.getInt("age") : null);
E io uso PreparedStatement#setObject()
praticamente tutto il tempo, in un metodo di utilità:
public static void setValues(PreparedStatement preparedStatement, Object... values) throws SQLException {
for (int i = 0; i < values.length; i++) {
preparedStatement.setObject(i + 1, values[i]);
}
}
Problemi correlati
- 1. Differenza tra Spring JDBC Vs Plain JDBC?
- 2. JDBC Transaction vs Connection Chiarimento
- 3. Connessione JDBC - Class.forName vs Class.forName(). NewInstance?
- 4. sqljdbc: JDBC driver sqljdbc.jar Vs sqljdbc4.jar
- 5. Spring Hibernate Vs jdbc template vs spring orm
- 6. Comportamento JDBC comportamento autoCommit predefinito
- 7. Multithreaded JDBC
- 8. Spring JDBC Impossibile caricare la classe di driver JDBC [oracle.jdbc.driver.OracleDriver]
- 9. Caricamento driver JDBC
- 10. Connessione JDBC sospesa
- 11. Buone pratiche: JDBC Connection
- 12. Caching in JDBC
- 13. JDBC Delete Works Slow
- 14. monitor connessioni JDBC
- 15. Come funziona jdbc
- 16. semplice wrapper jdbc
- 17. JDBC- postgres, connessione rifiutata
- 18. PySpark 1.5 & MSSQL jdbc
- 19. Modello Autowire Jdbc
- 20. Stato transazione in JDBC
- 21. Java JDBC: Reply.fill()
- 22. Codifica caratteri JDBC
- 23. Java JDBC ignora setFetchSize?
- 24. Collegamento interno SQLite/JDBC
- 25. batch JDBC Inserire OutOfMemoryError
- 26. Intercept JDBC Connection
- 27. Supporto Spark Sql JDBC
- 28. Connessione JDBC a SQL 2000 molto occupato: selectMethod = cursor vs selectMethod = direct?
- 29. Inserimento lento su PostgreSQL utilizzando JDBC
- 30. Transazioni facili con Spring JDBC?