in meinem Dao, in jeder Methode, wenn ich jdbctemplate aufrufen, sollte ich mit neuen jdbctemplate() aufrufen. Recht? oder einen statischen Augenblick von jdbctemplate erhalten und wiederverwenden? Wie wäre es mit jpatemplate?jdbctemplate, jpatemplate
Antwort
in meinem Dao, in jeder Methode, wenn ich jdbctemplate aufrufen, sollte ich mit neuen jdbctemplate() aufrufen. Recht?
Nein, Sie nicht. Die JdbcTemplace
sollte in Ihrem DAO durch Konfiguration injiziert werden. Dito für JpaTemplate
.
JdbcTemplate ist THREAD so ist es absolut sicher ist eine Instanz davon in Ihrer gesamten Anwendung zu teilen (obwohl nur die Datasource-Sharing verwendet, um die JdbcTemplate init kann mehr Sinn machen). Im Allgemeinen ist eine (nicht-statische) Instanz pro Klasse ausreichend, JdbcTemplate behandelt Threading-Probleme von selbst und Sie werden nie Probleme mit Parallelität neben Datenbanksperren bekommen.
Um zu den anderen Antworten hinzuzufügen, ist JdbcTemplate
sehr leicht, und die Baukosten sind fast Null. Also, wenn Sie wurden, um eine neue bei jeder Operation zu erstellen, würde es wahrscheinlich keine Nebenwirkungen oder sinnvolle Leistungseinbußen. Die Klasse ist lediglich ein Verhaltenswrapper rund um die JDBC-API. Aus der gleichen Logik heraus gibt es keinen Grund, vorsichtig zu sein, um sicherzustellen, dass Sie nur ein JdbcTemplate
Objekt haben. Es sollte zu dem von Ihnen gewählten Design passen.
Die meisten DAOs instanziieren JdbcTemplate
direkt. Stattdessen Unterklasse JdbcDaoSupport
, die eine JdbcTemplate
Instanz für Sie verwalten. Ihre Unterklasse ruft dann getJdbcTemplate()
auf, um die Instanz abzurufen. Wenn Sie JdbcDaoSupport nicht unterklassifizieren, erstellen Sie eine Instanz von JdbcTemplate
, wenn Ihre DAO-Bean initialisiert wird, und verwenden Sie sie erneut.
Das gleiche gilt für die anderen DAO-Vorlagenklassen (Hibernate, JPA usw.).
- 1. mit Spring JdbcTemplate - Injizieren Datenquelle vs jdbcTemplate
- 2. Frühling JDBCTemplate Ausnahme
- 3. JdbcTemplate mehrere Ergebnissätze
- 4. Paged Abfragen mit JdbcTemplate
- 5. Frühling jdbcTemplate Unit-Tests
- 6. NamedParameterJdbcTemplate vs JdbcTemplate
- 7. Spring jdbcTemplate Junit
- 8. Spring's JdbcTemplate und Transaktionen
- 9. eine boolean zurückgeben - jdbcTemplate
- 10. JdbcTemplate und inet Datentyp
- 11. Seltsame Nullzeiger mit jdbcTemplate
- 12. jdbcTemplate batchUpdate Problem
- 13. Wenn @transactional verwendet wird, muss ich jpatemplate/hibernate template verwenden?
- 14. Verwenden Sie JpaTemplate in Java mit Transaktionen behandelt?
- 15. Wie programmiere ich Spring JdbcTemplate?
- 16. JDBCTemplate gibt Null-Zeiger-Ausnahme?
- 17. Spring JDBCTemplate-Tabellensperrung mit MySQL
- 18. Spring jdbcTemplate vs PreparedStatement. Leistungsunterschied
- 19. JDBCTemplate für JavaEE und CDI
- 20. Commit on jdbcTemplate oder DataSource
- 21. jdbcTemplate hängt am langen Update
- 22. Verwenden vorbereiteter Anweisungen mit JDBCTemplate
- 23. JDBCTemplate queryForMap zum Abrufen mehrerer Zeilen
- 24. Identität von SQL einfügen über JDBCtemplate
- 25. Fügen Sie das Apostroph mithilfe von jdbctemplate
- 26. Wie JdbcTemplate verwenden, um Abfragen auszuführen Join
- 27. Fetch Primärschlüssel, erzeugt durch Sequenz jdbctemplate/Jdbc
- 28. Wie Sie @Transactional in JdbcTemplate ignorieren
- 29. aktualisieren Sie eine Zeile mit Spring jdbctemplate
- 30. Java spring autowires Jdbctemplate aber nicht NamedParameterJdbcTemplate
@ downvoter: bitte erklären Sie Ihren Downvote – dfa