Que es JsqlParser

JSqlParser (https://github.com/JSQLParser/JSqlParser) es un parseador de sentencias SQL, que permite descomponer sentencias en lenguaje SQL a un modelo de clases Java, y viceversa, construir sentencias SQL programáticamente, a desde el modelo de clases Java.

De manera que JSqlParser es muy útil cuando necesitamos, analizar, construir o preparar/modificar sentencias SQL en nuestra aplicación de forma programática.

Cubre el estándar SQL así como así como numerosas clausulas específicas de motores de bases de datos concretos como Oracle, SqlServer, MySQL o PostgreSQL. Por ejemplo, “+” de Oracle para hacer JOINS, “::” de PostgreSQL para hacer casts…

JSqlParser es un proyecto mantenido por una comunidad de usuarios en github, que constantemente incluye mejoras y resuelve bugs. Su código fuente se distribuye con licencia LGPL y Apache v2.

Para utilizar JSqlParser, podemos descargar el código fuente desde github y compilarlo con maven, o directamente añadirlo como dependencia maven a nuestro proyecto:

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

y descargarlo desde el repositorio sonatype añadiéndolo a la sección de repositorios de nuestro proyecto (https://oss.sonatype.org/content/groups/public/)

 

Una vez incluida la librería en nuestro proyecto podemos empezar a trabajar con sentencias SQL mediante un modelo de clases Java, pudiendo:

Parsear sentencias simples:

Statement stmt = CCJSqlParserUtil.parse("SELECT * FROM tab1");

 

Parsear scripts:

Statements stmt = CCJSqlParserUtil.parseStatements("SELECT * FROM tab1; SELECT * FROM tab2");

 

Definir y parsear expresiones para utilizar en sentencias:

Expression expr = CCJSqlParserUtil.parseExpression("a*(5+mycolumn)");

 

Analizar programáticamente una sentencia parseada:


Statement statement = CCJSqlParserUtil.parse("SELECT * FROM MY_TABLE1");

Select selectStatement = (Select) statement;

TablesNamesFinder tablesNamesFinder = new TablesNamesFinder();

List<String> tableList = tablesNamesFinder.getTableList(selectStatement);

·····················

Select select = (Select) CCJSqlParserUtil.parse("select a,b,c from test");

final AddAliasesVisitor instance = new AddAliasesVisitor();

select.getSelectBody().accept(instance);

 

Modificar programáticamente una sentencia parseada:

Select select = (Select) CCJSqlParserUtil.parse("select a from mytable");

SelectUtils.addExpression(select, new Column("b"));

 

Construir sentencias programáticamente:

Select select = SelectUtils.buildSelectFromTableAndExpressions(
new Table("mytable"), new Column("a"), new Column("b"));

 

Podemos encontrar más ejemplos de utilización en: https://github.com/JSQLParser/JSqlParser/wiki#examples

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: