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 catch
benim es kendim yapı sonunda vereceğim.)
CEVAP
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
Nasıl YouTube API YouTube video küçük ...
Nasıl JavaScript para olarak format nu...
Nasıl bir dize dönüştürmek için yığın ...
Nasıl kalıcı olarak Kişisel satır numa...
Nasıl, asenkron yerine senkron AJAX is...