집 >데이터 베이스 >MySQL 튜토리얼 >JDBC 준비 문에서 PostgreSQL JSONB 연산자(`?`, `?|`, `?&`, `/`)를 사용하는 방법은 무엇입니까?
PostgreSQL은 ?/?|/ 및 ?&를 포함한 다양한 연산자를 제공합니다. JSON 처리를 용이하게 합니다. 그러나 PostgreSQL JDBC 드라이버는 이러한 연산자가 포함된 SQL 문자열을 구문 분석하는 데 어려움을 겪습니다. 이 기사에서는 JDBC에서 이러한 연산자를 활용하기 위한 두 가지 해결 방법을 살펴봅니다.
한 가지 접근 방식은 준비된 문 대신 정적 문을 사용하는 것입니다. 이 방법은 준비된 문의 이점을 제거하지만 연산자를 효과적으로 처리합니다.
try (Statement s = c.createStatement(); ResultSet rs = s.executeQuery("select '{}'::jsonb ?| array['a', 'b']")) { ... }
연산자는 pg_catalog의 함수에 해당하는 단순한 구문 구조입니다. 이러한 함수를 식별하면 연산자를 사용하지 않고도 직접 호출할 수 있습니다. 이 방법은 인덱싱 효율성에 영향을 미칠 수 있습니다.
해당 함수를 찾으려면 다음 SQL 쿼리를 실행하세요.
SELECT oprname, oprcode || '(' || format_type(oprleft, NULL::integer) || ', ' || format_type(oprright, NULL::integer) || ')' AS function FROM pg_operator WHERE oprname = '?|';
결과 함수 "jsonb_exists_any(jsonb, text[])"는 다음과 같습니다. 준비된 진술에 사용됩니다:
try (PreparedStatement s = c.prepareStatement( "select jsonb_exists_any('{}'::jsonb, array['a', 'b']"); ResultSet rs = s.executeQuery()) { ... }
위 내용은 JDBC 준비 문에서 PostgreSQL JSONB 연산자(`?`, `?|`, `?&`, `/`)를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!