Rumah >pangkalan data >tutorial mysql >Mengapa Kod JDBC Java Saya Mendapat Ralat 'Lajur Tidak Wujud' dalam PostgreSQL Walaupun Lajur Wujud?

Mengapa Kod JDBC Java Saya Mendapat Ralat 'Lajur Tidak Wujud' dalam PostgreSQL Walaupun Lajur Wujud?

Susan Sarandon
Susan Sarandonasal
2025-01-20 20:04:11407semak imbas

Why Does My Java JDBC Code Get a

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!

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