Mengakses SQL Query yang Dilaksanakan oleh PreparedStatement
Pernyataan yang disediakan digunakan untuk menghalang suntikan SQL dan meningkatkan prestasi pertanyaan. Walau bagaimanapun, mengelog pertanyaan SQL mereka semasa penyahpepijatan mungkin menimbulkan cabaran kerana pernyataan yang dilog mengandungi pemegang tempat (?) dan bukannya nilai sebenar.
Malangnya, mendapatkan pertanyaan SQL yang tepat yang akan dilaksanakan oleh PreparedStatement tidak mungkin dalam Java tanpa membinanya secara manual. Tidak seperti pernyataan biasa, pernyataan yang disediakan menjalani fasa penyediaan di mana pertanyaan dianalisis dan disimpan dalam ingatan sebagai struktur data. Pelaksanaan berlaku terhadap pembolehubah terikat yang disediakan secara berasingan.
Untuk tujuan penyahpepijatan, anda boleh memilih pendekatan berikut:
Adalah penting untuk ambil perhatian bahawa kekurangan cara langsung untuk mengakses SQL PreparedStatement berpunca daripada fakta bahawa ia tidak wujud dalam bentuk yang boleh diambil terus. Penyataan yang disediakan mengoptimumkan pelaksanaan pertanyaan dengan memisahkan fasa penghuraian dan penyediaan daripada fasa pelaksanaan, dan pemisahan ini menghalang ketersediaan pertanyaan yang dilaksanakan dalam masa nyata.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Pertanyaan SQL Sebenar yang Dilaksanakan oleh PreparedStatement di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!