Saya memiliki metode Java umum dengan metode tanda tangan berikut:
private static ResultSet runSQLResultSet(String sql, Object... queryParams)
Ini membuka koneksi, membangun PreparedStatement
menggunakan pernyataan sql dan parameter dalam queryParams
array panjang variabel, menjalankannya, cache ResultSet
(dalam a CachedRowSetImpl
), menutup koneksi, dan mengembalikan set hasil cache.
Saya memiliki pengecualian dalam penanganan metode yang mencatat kesalahan. Saya mencatat pernyataan sql sebagai bagian dari log karena ini sangat membantu untuk debugging. Masalah saya adalah bahwa log variabel String sql
log pernyataan template dengan? S bukan nilai yang sebenarnya. Saya ingin mencatat pernyataan aktual yang dieksekusi (atau mencoba dieksekusi).
Jadi ... Apakah ada cara untuk mendapatkan pernyataan SQL aktual yang akan dijalankan oleh PreparedStatement
? ( Tanpa membangunnya sendiri. Jika saya tidak dapat menemukan cara untuk mengakses PreparedStatement's
SQL, saya mungkin akan berakhir membangunnya sendiri di catch
es saya .)