SORU
4 Mart 2010, PERŞEMBE


Nasıl bir PreparedStatement SQL alabilir miyim?

Aşağıdaki yöntem imzası ile genel Java bir yöntem var:

private static ResultSet runSQLResultSet(String sql, Object... queryParams)

Açılır bir bağlantı kurar PreparedStatement sql deyimlerini kullanmak ve parametreleri queryParams değişken uzunlukta dizi, çalışır, çalışır ve ResultSet (CachedRowSetImpl), bağlantıyı kapatır ve döner önbelleğe alınan sonuç kümesi.

Özel durum hataları günlükleri işleme yöntemi var. Hata ayıklama için çok yararlı olduğu günlük bir parçası olarak sql deyimi ben günlük. Benim sorunum Dize değişkeni sql günlüğü şablonu deyimi ile günlükleri'gerçek değerler yerine s.? Günlüğüne istiyorumgerçekaçıklama (veya çalıştırmak için çalıştı) idam edildi.

Yani... PreparedStatement tarafından çalıştırılacak gerçek SQL deyimi almak için herhangi bir yolu var mı? (Olmadankendim bina. Eğer PreparedStatement's SQL erişmek için bir yol bulabilirsem değil, muhtemelen catchbenim es kendim yapı sonunda vereceğim.)

CEVAP
4 Mart 2010, PERŞEMBE


Hazırlanmış deyimleri kullanarak, hayır vardır "SQL sorgusu" :

  • Açıklamada, yer tutucuları içeren
    • DB sunucuya gönderilir
    • ve hazırlanmış
    • hangi SQL deyimi"", ayrıştırılmış, veri yapısı bazı bellekte hazır olduğunu temsil ediyor . analiz anlamına gelir
  • Ve, sonra, bağlı değişken var
    • sunucuya gönderilir
    • ve hazırlanan ifadeyi -- bu veri üzerinde çalışma yürütülür

Ama gerçek bir SQL veritabanı sorgu ne tarafta JAVA tarafında, ne de ... ... yeniden inşa yok.

Yani, bu SQL yok olarak hazırlanmış deyimi SQL gitmenin yolu yok.


Hata ayıklama amacıyla, çözümler için de :

  • Bildiride yer tutucuları ; ve veri listesinin kod çıkışı
  • Ya da "" bazı SQL sorgu "elle". oluşturmak için

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Random Act of Kindness Video Contest

    Random Act o

    18 EYLÜL 2012
  • Malwarebytes

    Malwarebytes

    22 Temmuz 2007
  • The Onion

    The Onion

    14 Mart 2006