11

Datastax Java sürücüsü (cassandra sürücüsü çekirdekli 2.0.2) PreparedStatements olarak QueryBuilder API destekler. Birini diğeriyle kullanan belirli avantajlar? Dezavantajları?Cassandra Java Driver- QueryBuilder API Cassandra'ya için

Dokümantasyon: http://www.datastax.com/documentation/developer/java-driver/2.0/common/drivers/reference/driverReference_r.html

yukarıdaki doc (kitabımda) bir avantaj çok değil programlı sorgular yazma dışındaki PreparedStatements üzerinde QueryBuilder API, üzerinden herhangi bir avantaj durumunu değil.

Lütfen düşüncelerinizi ve deneyimlerinizi paylaşın. Teşekkürler.

cevap

17

PreparedStatements size zaten sunucu tarafında saklanır yürütme şeye beri performans artışı sağlar (eğer ifadeleri yeniden kullanmak varsayılarak). Yeni somut değerleri bağlarsınız ve ifadeyi tekrar uygularsınız.

sorgu oluşturucu herhangi bir hazırlık gerektirmeden olarak yürütülecek bir dizi ifade edilmesi için bir süslü bir yöntemdir. İlk seçenek en hızlı bir performans açısından, ikinci ve üçüncü itibaren

aynıdır:

// below prepared statement has already been prepared, we're now just re-using 
PreparedStatement ps = session.prepare("SELECT * FROM users WHERE uname=?"); 

1) session.execute(ps.bind('david'); 
2) session.execute("SELECT * FROM users WHERE uname=david"); 
3) session.exectute(QueryBuilder.select() 
           .all() 
           .from("users") 
           .where(QueryBuilder.eq('uname', 'david')) 

bu alakalı ama sorgularının dize yürütme geçiş iyi bir örnektir orada build eğer çok emin değilim this ycsb client'da önceden oluşturulmuş ifadeleri kullanmak için sorgu oluşturucu.

+2

Not onu '' '' '' den QueryBuilder''' taşımak PreparedStatement''' oldukça kolay öyleyse, '' '' '' QueryBuilder''' zincirleri gelen PreparedStatement''' nesneleri oluşturabilir – Drew