CodeBrew28/JSqlParser


JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes. The generated hierarchy can be navigated using the Visitor Pattern https://github.com/JSQLParser/JSqlParser/wiki

Download


Step 1. Add the JitPack repository to your build file

Add it in your root settings.gradle at the end of repositories:

	dependencyResolutionManagement {
		repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
		repositories {
			mavenCentral()
			maven { url 'https://jitpack.io' }
		}
	}

Add it in your settings.gradle.kts at the end of repositories:

	dependencyResolutionManagement {
		repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
		repositories {
			mavenCentral()
			maven { url = uri("https://jitpack.io") }
		}
	}

Add to pom.xml

	<repositories>
		<repository>
		    <id>jitpack.io</id>
		    <url>https://jitpack.io</url>
		</repository>
	</repositories>

Add it in your build.sbt at the end of resolvers:

 
    resolvers += "jitpack" at "https://jitpack.io"
        
    

Add it in your project.clj at the end of repositories:

 
    :repositories [["jitpack" "https://jitpack.io"]]
        
    

Step 2. Add the dependency

	dependencies {
		implementation 'com.github.CodeBrew28:JSqlParser:jsqlparser-0.9.5'
	}
	dependencies {
		implementation("com.github.CodeBrew28:JSqlParser:jsqlparser-0.9.5")
	}
	<dependency>
	    <groupId>com.github.CodeBrew28</groupId>
	    <artifactId>JSqlParser</artifactId>
	    <version>jsqlparser-0.9.5</version>
	</dependency>

                            
    libraryDependencies += "com.github.CodeBrew28" % "JSqlParser" % "jsqlparser-0.9.5"
        
        

                            
    :dependencies [[com.github.CodeBrew28/JSqlParser "jsqlparser-0.9.5"]]
        
        

Readme


JSqlParser

Build Status Coverage Status Codacy Badge

PayPal donate button

Gitter

Look here for more information and examples: https://github.com/JSQLParser/JSqlParser/wiki.

License

JSqlParser is dual licensed under LGPL V2.1 and Apache Software License, Version 2.0.

News

  • Released version 1.1 of JSqlParser.
  • JSqlParser has now a build in checkstyle configuration to introduce source code conventions.
  • Released first major version 1.0 of JSqlParser.
  • Please test the actual 0.9.8-SNAPSHOT. It includes includes grammar refactorings or changes which eventually results in parse tree changes.
  • Version 0.9.7 released.
  • Version 0.9.6 released.
  • Version 0.9.5 released.
  • Please test the actual 0.9.5-SNAPSHOT. It includes some grammar refactorings which eventually results in parse tree changes.
  • Version 0.9.4 released.
  • Please test the actual SNAPSHOT, if there are problems using the extended identifier token.
  • Version 0.9.3 released.

More news can be found here: https://github.com/JSQLParser/JSqlParser/wiki/News.

JSqlParser

JSqlParser is a SQL statement parser. It translates SQLs in a traversable hierarchy of Java classes. JSqlParser is not limited to one database but provides support for a lot of specials of Oracle, SqlServer, MySQL, PostgreSQL ... To name some, it has support for Oracles join syntax using (+), PostgreSQLs cast syntax using ::, relational operators like != and so on.

Support

If you need help using JSqlParser feel free to file an issue or contact me.

Contributions

To help JSqlParsers development you are encouraged to provide

  • feedback
  • bugreports
  • pull requests for new features
  • improvement requests
  • fund new features

Also I would like to know about needed examples or documentation stuff.

Extensions in the latest SNAPSHOT version 1.2

  • introduced alias for subquery in combination with a pivot definition (this changes alias handling within the library for pivot sqls)
  • force the parser to fully parse a String using parseCondExpression or parseExpression

Extensions of JSqlParser releases

Building from the sources

As the project is a Maven project, building is rather simple by running:

mvn package

The project requires the following to build:

  • Maven
  • JDK 1.7 or later. The jar will target JDK 1.6, but the version of the maven-compiler-plugin that JsqlParser uses requires JDK 1.7+

This will produce the jsqlparser-VERSION.jar file in the target/ directory.

To build this project without using Maven, one has to build the parser by JavaCC using the CLI options it provids.

Source Code conventions

Recently a checkstyle process was integrated into the build process. JSqlParser follows the sun java format convention. There are no TABs allowed. Use spaces.

public void setUsingSelect(SubSelect usingSelect) {
    this.usingSelect = usingSelect;
    if (this.usingSelect != null) {
        this.usingSelect.setUseBrackets(false);
    }
}

This is a valid piece of source code:

  • blocks without braces are not allowed
  • after control statements (if, while, for) a whitespace is expected
  • the opening brace should be in the same line as the control statement

Maven Repository

JSQLParser is deployed at sonatypes open source maven repository. Starting from now I will deploy there. The first snapshot version there will be 0.8.5-SNAPSHOT. To use it this is the repository configuration:

<repositories>
     <repository>
         <id>jsqlparser-snapshots</id>
         <snapshots>
             <enabled>true</enabled>
         </snapshots>
         <url>https://oss.sonatype.org/content/groups/public/</url>
     </repository>
</repositories>

This repositories releases will be synched to maven central. Snapshots remain at sonatype.

And this is the dependency declaration in your pom:

<dependency>
	<groupId>com.github.jsqlparser</groupId>
	<artifactId>jsqlparser</artifactId>
	<version>1.1</version>
</dependency>