Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menggunakan Operator JSON(B) PostgreSQL dengan '?' dalam JDBC?

Bagaimana untuk Menggunakan Operator JSON(B) PostgreSQL dengan '?' dalam JDBC?

Barbara Streisand
Lepaskan: 2024-12-23 15:38:15
asal
250 orang telah melayarinya

How to Use PostgreSQL's JSON(B) Operators with

Memahami Operator PostgreSQL JSON(B) dengan Tanda Soalan ""?" dalam JDBC

PostgreSQL menawarkan pengendali JSON unik yang termasuk watak tanda soal dalam nama mereka, seperti ? untuk kewujudan kunci dan ?|. Walau bagaimanapun, pemacu PostgreSQL JDBC rasmi menghadapi kesukaran menghuraikan rentetan SQL yang mengandungi pengendali ini, tersilap mentafsirkannya sebagai pembolehubah mengikat JDBC.

Penyelesaian untuk Menggunakan Operator Sebegitu melalui JDBC

Untuk berjaya menggunakan operator ini dalam JDBC, pertimbangkan perkara berikut penyelesaian:

Gunakan Pernyataan Statik

Penyelesaian asas ini menghapuskan penggunaan pernyataan yang disediakan, membenarkan rentetan SQL dilaksanakan sebagai pernyataan statik mengorbankan kelebihan yang disediakan penyataan.

try (Statement s = c.createStatement();
     ResultSet rs = s.executeQuery("select '{}'::jsonb ?| array['a', 'b']")) {
     ...
}
Salin selepas log masuk

Mengenal pasti nama fungsi membolehkan anda menggunakannya secara langsung. Contohnya:

Ini menghasilkan hasil berikut:
SELECT 
  oprname, 
  oprcode || '(' || format_type(oprleft,  NULL::integer) || ', ' 
                 || format_type(oprright, NULL::integer) || ')' AS function
FROM pg_operator 
WHERE oprname = '?|';
Salin selepas log masuk

Penyelesaian melibatkan penggantian operator dengan fungsi yang sepadan:
oprname  function
----------------------------------------------------------------------------------
?|       point_vert(point, point)
?|       lseg_vertical(-, lseg)
?|       line_vertical(-, line)
?|       jsonb_exists_any(jsonb, text[])    <--- this is the one we're looking for
?|       exists_any(hstore, text[])
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Operator JSON(B) PostgreSQL dengan '?' dalam JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan