Spring3.x'e yeni başladım, Spring DAO desteğini öğreniyorum. NamedParameterJdbcTemplate ve JdbcTemplate arasındaki farkı bilmek istiyorum. Performans ile hangisi en iyisidir. Ve ne zaman NamedParameterJdbcTemplate için gitmek ve ne zaman JdbcTemplate için gitmek için. Cevabınız benim gibi yeni başlayanlara çok yardımcı olacaktır.NamedParameterJdbcTemplate vs JdbcTemplate
cevap
Ölçülebilir bir fark performansı yoktur. NamedParameterJdbcTemplate, adlandırılmış parametreleri kullanmanıza olanak veren bir kolaylıktır. Gerçekten merak ediyorsanız, indirme için hazır olan kaynak koduna bakın. Kaynak kodunu okurken forumlarda aldığım cevaplara daha fazla güvenmemi sağlıyorum.
JdbcTemplate kullandığınızda, SQL'e her bir parametre için ?
yer tutucusuna sahip SQL verilir. kodda parametreleri atadığınızda Bir dizide bir argüman geçmek zorunda ve onlar bu gibi dizide göründükleri sırayla alışması:
Object[] args = new Object[] {"x", "y"};
String sql = "select * from foo where a = ? and b = ?";
jdbcTemplate.query(sql, args, resultSetExtractor);
böylece koþulur SQL
select * from foo where a = 'x' and b = 'y'
olduğunu.
NamedParameterJdbcTemplate, parametre yer tutucularına adlar atamanıza ve şablonun harita adlarını yer tutucularla eşleştirebilmesi için bir haritaya aktarmanıza olanak tanır. gibi Yani kod görünecektir:
String sql = "select * from foo where a = :mya and b = :myb";
Map<String, Object> argMap = new HashMap<String, Object>();
argMap.put("mya", "x");
argMap.put("myb", "y");
namedParameterJdbcTemplate.query(sql, argMap, resultSetExtractor);
ilk örnekle aynı SQL üreten (zaman yoğun bir parçasıdır ve sorguyu çalıştıran, argüman ekleme performansı olmayan bir konudur.).
Fikir, argümanların isimle eşleştirilmesinin, belirli bir sırada onları belirtmek zorunda kalmadan daha az hataya eğilimli olmasıdır. Gerçek hayattaki bir uygulamada, SQL genellikle DAO kodundan ayrı bir dosyada saklanır ve yanlışlıkla parametreleri yanlış sıraya göre almak kolay olabilir.
- 1. Java yaylı otomatik teller Jdbctemplate ancak NamedParameterJdbcTemplate
- 2. JDBCTemplate
- 3. JdbcTemplate IN Dize öğeleri için Madde
- 4. JdbcTemplate çoklu sonuç kümeleri
- 5. Jersey e2e Spring'in JDBCTemplate
- 6. bahar jdbcTemplate istisna nasıl yakalanır?
- 7. JavaEE ve CDI için JDBCTemplate
- 8. Bir java.sql.Connection öğesinden JdbcTemplate uygulamasının gerçekleştirilmesi
- 9. bahar jdbctemplate kullanarak bir satırı güncelleştirin
- 10. JDBCTemplate with TransactionTemplate ve Bağlantı Havuzu,
- 11. JdbcTemplate kodunu test etmek istersem @DataJpaTest'in karşılığı nedir?
- 12. ID vs UniqueID vs ClientID vs UniqueClientID vs StaticClientID?
- 13. & vs * ve | VS +
- 14. SpiderMonkey vs JavaScriptCore vs?
- 15. Argüman eşleştirmelerinin geçersiz kullanımı
- 16. VS
- 17. VS
- 18. İlkbahar JdbcTemplate'deki temel SQL'i görmek?
- 19. IDataErrorInfo vs ValidationRule vs Exception
- 20. cudaStreamSynchronize vs CudaDeviceSynchronize vs cudaThreadSynchronize
- 21. visualvm vs JProbe vs JProfiler
- 22. _mm_load_ps vs. _mm_load_pd vs. etc
- 23. pycuda vs theano vs pylearn2
- 24. is_numeric() vs is_float() vs is_int()
- 25. TextColor vs TextColorPrimary vs TextColorSecondary
- 26. NamedParameterJdbcTemplate ve GeneratedKeyHolder kullanarak birincil anahtarı (veya ROWID) ayıklamanın bir yolu var mı?
- 27. GridView vs DataList vs için Repeater vs ListView 'in performansı
- 28. Qt: UI ile vs vs ile xml vs ile qml
- 29. Barındırma PowerShell: PowerShell vs. Runspace vs. RunspacePool vs. Pipeline
- 30. Python vs Jython vs IronPython vs wxPython arasındaki fark nedir?
Neden javadoc'u okumadınız? Farkın ne olduğunu açıklayabileceğini düşünmüyor musun? Performans söz konusu olduğunda, sorgunun oluşturulması ve yürütülmesi çok fazla önemli değildir. Önemli olan, sorgunun kendisidir. –