Rumah >pangkalan data >tutorial mysql >Mengapa Saya Tidak Boleh Menggunakan Penyata Disediakan untuk Nama Jadual dalam JDBC?

Mengapa Saya Tidak Boleh Menggunakan Penyata Disediakan untuk Nama Jadual dalam JDBC?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-19 13:37:09628semak imbas

Why Can't I Use Prepared Statements for Table Names in JDBC?

Parameterisasi Nama Jadual Alamat dalam Penyata Disediakan JDBC

Pernyataan yang disediakan JDBC menawarkan kelebihan keselamatan dan prestasi yang ketara, tetapi ia mempunyai had. Satu batasan tersebut ialah ketidakupayaan untuk menggunakan parameter sebagai nama jadual dalam pertanyaan SQL. Percubaan untuk berbuat demikian biasanya akan mengakibatkan ralat.

Penyelesaian adalah mudah: Daripada menggunakan pemegang tempat untuk nama jadual, masukkan terus nama jadual ke dalam rentetan pertanyaan SQL anda. Contohnya:

<code class="language-java">private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM " + reportDate; </code>

Dalam contoh yang diperbetulkan ini, reportDate (diandaikan mengandungi nama jadual sebenar) digabungkan terus ke dalam rentetan SQL. Ini mengelakkan percubaan untuk membuat parameter nama jadual, membolehkan pelaksanaan penyataan yang disediakan berjaya.

Adalah penting untuk mengingati kekangan ini: Nama jadual tidak dianggap sebagai parameter dalam pernyataan yang disediakan dan mesti disertakan secara eksplisit dalam pertanyaan. Kegagalan berbuat demikian akan menyebabkan kegagalan pertanyaan.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menggunakan Penyata Disediakan untuk Nama Jadual dalam JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn