복붙노트

[SQL] 거기 모든 자바 라이브러리가 유효성 검사 SQL 구문? [닫은]

SQL

거기 모든 자바 라이브러리가 유효성 검사 SQL 구문? [닫은]

이도 존재 아닌지 그래서 내가 다른 사람의 지혜를 누릅니다 것이라고 생각, 잘 모르겠어요 ..

SQL 쿼리의 구문을 확인하는 데 사용할 수 있습니다 거기 자바 라이브러리가 있는지 궁금 해서요. 나는 일반적인 SQL 사양에서 많은 편차가 있다는 것을 알고 그래서 SQL 같은 대한 아마 단지 일 것 : 2006,하지만 충분 확실히 할 것이다.

내 목표는 DB에 대한 실행을 시도 할 필요없이 단위 테스트를 목적으로이를 사용하는 것입니다. 나는 그것이 제한적으로 사용 알고,하지만 여전히 유용 할 것이다.

감사!

해결법

  1. ==============================

    1.나는 그런 라이브러리가 있다고 생각하지 않습니다. SQL 구문은 너무 많은 파생 상품이 있습니다.

    나는 그런 라이브러리가 있다고 생각하지 않습니다. SQL 구문은 너무 많은 파생 상품이 있습니다.

    가능한 솔루션은 오픈 소스 SmallSQL 같은 순수 자바 DBMS의 부품을 사용하는 것입니다. 이 프로젝트에서 당신은 SQLParser의 인스턴스를 만들 수 있습니다. 연결에 필요한 참조는 매우 쉽게 제거 할 수 있습니다.

  2. ==============================

    2.아마 당신은 다양한 자바 IDE를위한 SQL 문법과 자바 라이브러리의 수뿐만 아니라 플러그인을 가지고 ANTLR을 사용할 수 있습니다.

    아마 당신은 다양한 자바 IDE를위한 SQL 문법과 자바 라이브러리의 수뿐만 아니라 플러그인을 가지고 ANTLR을 사용할 수 있습니다.

    조언이나, 다람쥐 SQL 클라이언트 같은 오픈 소스 SQL 유틸리티의 파서를 사용합니다.

  3. ==============================

    3.일반 SQL 파서 오프라인 SQL 구문 검사를 할 수 있습니다. 지원되는 데이터베이스 : 오라클, DB2, MySQL은, SQL 서버, 테라 데이타과 PostgreSQL.

    일반 SQL 파서 오프라인 SQL 구문 검사를 할 수 있습니다. 지원되는 데이터베이스 : 오라클, DB2, MySQL은, SQL 서버, 테라 데이타과 PostgreSQL.

  4. ==============================

    4.JSQL 파서를 사용해보십시오.

    JSQL 파서를 사용해보십시오.

    검증 이외에, 당신은 쿼리의 의미 표현을 얻을 수 있습니다. 이렇게하면, 예를 들어, 전용 "특정"명령을 받아 들일 수; 교묘히 다루다 쿼리, "싸게 치장"그것 등

  5. ==============================

    5.당신은 자바 및 오픈 소스 HSQL에서 파싱 코드를 추출 할 수 있습니다.

    당신은 자바 및 오픈 소스 HSQL에서 파싱 코드를 추출 할 수 있습니다.

  6. ==============================

    6.아파치 더비는 아파치 라이센스, 버전 2.0에서 완전히 자바에서 사용 가능한 구현 된 오픈 소스 SQL 데이터베이스입니다. 그것은 이전에 IBM Cloudscape를로 알려졌다.

    아파치 더비는 아파치 라이센스, 버전 2.0에서 완전히 자바에서 사용 가능한 구현 된 오픈 소스 SQL 데이터베이스입니다. 그것은 이전에 IBM Cloudscape를로 알려졌다.

    당신은 org.apache.derby.impl.sql에서 코드를 구문 분석있어 다시 시도 할 수 있습니다.

  7. ==============================

    7.JOOQ하면 SQL에서 실수를하지 않습니다. 자바 컴파일러는 처리됩니다.

    JOOQ하면 SQL에서 실수를하지 않습니다. 자바 컴파일러는 처리됩니다.

  8. from https://stackoverflow.com/questions/141499/any-java-libraries-out-there-that-validate-sql-syntax by cc-by-sa and MIT license