웹사이트를 방문해 보세요. JSqlParser는 RDBMS에 구애받지 않는 SQL 문 파서입니다. 이는 SQL 문을 Java 클래스의 탐색 가능한 계층 구조로 변환합니다(샘플 참조).
SELECT 1 FROM dual WHERE a = b
SQL Text
└─Statements: statement.select.PlainSelect
├─selectItems: statement.select.SelectItem
│ └─LongValue: 1
├─Table: dual
└─where: expression.operators.relational.EqualsTo
├─Column: a
└─Column: b
String sqlStr = "select 1 from dual where a=b" ;
PlainSelect select = ( PlainSelect ) CCJSqlParserUtil . parse ( sqlStr );
SelectItem selectItem =
select . getSelectItems (). get ( 0 );
Assertions . assertEquals (
new LongValue ( 1 )
, selectItem . getExpression ());
Table table = ( Table ) select . getFromItem ();
Assertions . assertEquals ( "dual" , table . getName ());
EqualsTo equalsTo = ( EqualsTo ) select . getWhere ();
Column a = ( Column ) equalsTo . getLeftExpression ();
Column b = ( Column ) equalsTo . getRightExpression ();
Assertions . assertEquals ( "a" , a . getColumnName ());
Assertions . assertEquals ( "b" , b . getColumnName ());
}
JSQLParser-4.9는 마지막 JDK8 호환 버전이었습니다. 최근 JSQLParser-5.0은 JDK11에 의존하며 AST 방문자에게 API 주요 변경 사항을 도입합니다. 자세한 내용은 마이그레이션 가이드를 참조하세요.
JSqlParser는 SQL 표준과 모든 주요 RDBMS를 지원하는 것을 목표로 합니다. 누락된 구문이나 기능은 요청 시 추가할 수 있습니다.
RDBMS | 진술 |
---|---|
신탁 MS SQL 서버와 사이베이스 포스트그레스 MySQL과 마리아DB DB2 H2 및 HSQLDB 및 Derby SQLite | SELECT INSERT , UPDATE , UPSERT , MERGE DELETE , TRUNCATE TABLE CREATE ... , ALTER .... , DROP ... WITH ... |
세일즈포스 SOQL | INCLUDES , EXCLUDES |
JSqlParser는 유창한 API를 사용하여 Java 코드에서 SQL 문을 생성하는 데에도 사용할 수 있습니다(샘플 참조).
JSqlParser가 마음에 드시면 관련 프로젝트를 확인해 보세요.
SQL 텍스트를 깔끔하게 인쇄하고 형식화하기 위한 JSQLFormatter
방언별 재작성, SQL 열 분석 및 계보를 위한 JSQLTranspiler
일반 SQL 구문 분석기는 확장된 SQL 구문(PL/SQL 및 T-SQL 등)과 java + .NET API를 사용하여 매우 좋아 보입니다. 이 도구는 무료 다운로드 옵션이 포함된 상업용(온라인 라이센스 사용 가능)입니다.
또는 이중 라이센스 JOOQ는 많은 RDBMS, 방언 간 변환, SQL 변환을 지원하는 손으로 작성한 파서를 제공하며 변환 및 변환 목적을 위한 JDBC 프록시로 사용할 수 있습니다.
JSqlParser 는 LGPL V2.1 또는 Apache 소프트웨어 라이센스 버전 2.0 에 따라 이중 라이센스가 부여됩니다.