Java 용 SQL 파서 라이브러리
SQL 문을 구문 분석하기위한 오픈 소스 Java 라이브러리가 있습니까?
가능하면 벤더별 구문 (예 : Oracle 테이블 스페이스 정의 또는 MySQL의 LIMIT 절)을 구문 분석 (또는 적어도 무시) 할 수있을 정도로 사용자 정의 가능하거나 유연해야합니다.
그렇지 않으면 SQL 표준을 엄격하게 준수하는 것입니다.
업데이트 : 두 가지 사항이 필요합니다.
- 비 SQL 데이터베이스에 SQL 인터페이스 제공 (내부 API 호출로 맵핑)
- 실제 데이터베이스로 가기 전에 SQL을 다시 작성 (예 : Oracle)
ANTLR3 에는 사용 가능한 ANSI SQL 문법이 있습니다. 이를 사용하여 자신의 파서를 만들 수 있습니다.
ANTLR4에는 SQL 문법이 있습니다.
- JSqlParser
- Presto의 구문 분석기 는 ANTLR4를 사용하여 작성되며 구문 분석기에서 빌드 된 자체 변경 불가능한 AST 클래스를 갖습니다. AST에는 방문자와 예쁜 프린터가 있습니다.
파서
파서가 필요한 경우 Apache Derby 의 코드베이스에 파서가 있어야합니다 .
공급 업체별 SQL 처리
jdbc Connection 객체 에서 .native () 메소드를보고 공급 업체 중립 쿼리를 전달하여 공급 업체별 쿼리로 후 처리 할 수 있습니다.
Java 용 일반 SQL 구문 분석기 는 오픈 소스가 아니지만 사용자가 원하는 것입니다.
Hibernate는 SQL 및 hql 구문 분석을 위해 ANTLR을 사용합니다.
JSqlParser도 좋은 옵션입니다. 오라클 pl / sql을 구문 분석하는 동안 몇 가지 버그 (또는 일부 기능은 구현되지 않음)가 있지만. 자세한 내용은 포럼을 참조하십시오.
따라서 Oracle pl / sql을 구문 분석하는 경우 ANTLR이 권장됩니다.
구문 분석 된 SQL로 무엇을 하시겠습니까? 기존 SQL 문법을 사용할 수 있는 몇 가지 Java 구현 Lex / Yacc ( BYACC / J , Java Cup )를 권장 할 수 있습니다.
결과적으로 구문 분석 된 문법으로 무언가를하고 싶다면 Java로 작성된 오픈 소스 SQL 데이터베이스 인 Derby를 살펴 보는 것이 좋습니다 .
참고 URL : https://stackoverflow.com/questions/660609/sql-parser-library-for-java
'Programming' 카테고리의 다른 글
Spring MVC @PathVariable가 잘림 (0) | 2020.06.27 |
---|---|
C ++ 14 자동 반환 유형 공제는 언제 사용해야합니까? (0) | 2020.06.24 |
영어 단어 데이터베이스를 얻는 방법? (0) | 2020.06.24 |
Apple Appstore에서 특정 앱의 다운로드 수 찾기 (0) | 2020.06.24 |
임의 "요소가 더 이상 DOM에 첨부되지 않음"StaleElementReferenceException (0) | 2020.06.24 |