Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat \'java.sql.SQLException: Nilai Rentetan Salah\' dalam Interaksi Java MySQL?

Bagaimana untuk Menyelesaikan Ralat \'java.sql.SQLException: Nilai Rentetan Salah\' dalam Interaksi Java MySQL?

DDD
DDDasal
2024-11-24 16:39:11308semak imbas

How to Resolve

java.sql.SQLException: Nilai Rentetan Salah: Menangani Isu Pengekodan Aksara Unikod

Apabila bekerja dengan Java dan MySQL, operasi pangkalan data boleh dihadapi ralat yang berkaitan dengan nilai rentetan yang salah. Satu ralat sedemikian ialah "java.sql.SQLException: Nilai rentetan salah", yang boleh timbul apabila memasukkan aksara bukan standard tertentu.

Sebagai contoh, memasukkan rentetan "walmart obama ??" ke dalam jadual pangkalan data MySQL dengan jenis lajur "varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL" boleh mencetuskan ralat di atas. Isunya terletak pada pengekodan aksara "??", yang mewakili titik kod Unikod yang melangkaui satah berbilang bahasa asas (BMP).

Pengekodan lalai MySQL, utf8, hanya menyokong aksara dalam BMP. Untuk menampung aksara di luar BMP, seperti emoji dan simbol khas lain, anda perlu menggunakan pengekodan utf8mb4.

Penyelesaian:

Untuk menyelesaikan isu ini, ubah suai Pangkalan data MySQL dan tetapan sambungan untuk menyokong utf8mb4 pengekodan:

  1. Kemas kini Pangkalan Data MySQL:

    • Pastikan versi MySQL anda adalah 5.5 atau lebih tinggi.
    • Ubah lajur jadual untuk menggunakan "varchar(255) SET KARAKTER utf8mb4 COLLATE utf8mb4_general_ci NOT NULL".
  2. Konfigurasikan Sambungan MySQL:

    • Untuk pendekatan pemandu-agnostik, laksanakan pertanyaan " TETAPKAN NAMA 'utf8mb4'" selepas membuat sambungan dengan pangkalan data.
    • Jika menggunakan Connector/J, tetapkan "characterEncoding" kepada "utf-8" dalam rentetan sambungan untuk mengesan dan menggunakan utf8mb4 secara automatik pada pelayan yang serasi.

Dengan melaraskan pangkalan data dan konfigurasi sambungan untuk menyokong utf8mb4, "java.sql.SQLException: Ralat nilai rentetan yang salah" akan diselesaikan, membolehkan pemasukan aksara bukan BMP berjaya ke dalam pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'java.sql.SQLException: Nilai Rentetan Salah\' dalam Interaksi Java MySQL?. 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