Rumah >pangkalan data >tutorial mysql >Mengapa Kod JDBC Java Saya Mendapat Ralat 'Lajur Tidak Wujud' dalam PostgreSQL Walaupun Lajur Wujud?
Menyelesaikan masalah Ralat "Lajur tidak wujud" PostgreSQL dalam Java JDBC
Masalah:
Aplikasi Java yang menggunakan JDBC untuk berinteraksi dengan PostgreSQL mungkin membuang pengecualian "lajur tidak wujud", walaupun lajur itu jelas wujud dalam pangkalan data. Ini sering berlaku walaupun terdapat nama jadual dan lajur yang tepat dalam pertanyaan SQL.
Punca Punca:
PostgreSQL adalah sensitif huruf besar-besaran. JDBC, secara lalai, menukar nama lajur kepada huruf kecil sebelum menghantar pertanyaan. Jika nama lajur anda mengandungi huruf besar, penukaran ini membawa kepada ketidakpadanan dan ralat.
Penyelesaian:
Penyelesaian adalah mudah: sertakan nama lajur dalam petikan berganda dalam pertanyaan SQL anda. Ini menghalang penukaran huruf kecil automatik JDBC, memastikan pangkalan data menerima kes yang betul.
Contoh:
Katakan anda sedang menanyakan jadual countries
dalam skema network
, cuba mendapatkan semula lajur Continent
. Pertanyaan yang bermasalah ialah:
<code class="language-sql">SELECT Continent FROM network.countries ...</code>
Pertanyaan yang diperbetulkan, menggunakan petikan berganda, ialah:
<code class="language-sql">SELECT "Continent" FROM network.countries ...</code>
Pengubahsuaian ini memastikan bahawa "Benua" dihantar kepada PostgreSQL tepat seperti yang ditakrifkan dalam pangkalan data, menyelesaikan ralat "lajur tidak wujud".
Amalan Terbaik:
Sentiasa gunakan petikan berganda di sekitar nama lajur dalam pertanyaan SQL anda apabila berinteraksi dengan PostgreSQL melalui JDBC untuk mengelakkan isu kepekaan huruf besar-besaran. Langkah berjaga-jaga mudah ini mengelakkan banyak kemungkinan sakit kepala.
Atas ialah kandungan terperinci Mengapa Kod JDBC Java Saya Mendapat Ralat 'Lajur Tidak Wujud' dalam PostgreSQL Walaupun Lajur Wujud?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!