scriptella.jdbc
Class SqlParserBase

java.lang.Object
  extended by scriptella.jdbc.SqlParserBase

public class SqlParserBase
extends java.lang.Object

Customizable SQL parser.

Supported extensions The parser supports extensions described in PropertiesSubstitutor.
Additionally ? prefix is used for expressions which should be injected as prepared statement parameters.

Example:


 var=_name
 id=11
 --------------------------------------
 select * FROM table${var} where id=?id
      --- is transformed to ---
 select * FROM table_name where id=?  where statement parameter has value of 11
 

Notes:

Example:

 --only ${prop} and ?surname are handled
 SELECT * FROM "Table" WHERE NAME="?John${prop}" and SURNAME=?surname;
 
These extensions are handled by subclasses in handleParameter(String, boolean, boolean) method.

Version:
1.0
Author:
Fyodor Kupolov

Constructor Summary
SqlParserBase()
           
 
Method Summary
protected  java.lang.String handleParameter(java.lang.String name, boolean expression, boolean jdbcParam)
          Called when parameter is encountered in SQL.
 void parse(java.io.Reader reader)
          Parses SQL script.
 void parse(SqlTokenizer tok)
           
protected  void statementParsed(java.lang.String sql)
          Invoked when SQL statement has been processed and all expressions handled.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SqlParserBase

public SqlParserBase()
Method Detail

parse

public void parse(java.io.Reader reader)
Parses SQL script.

Parameters:
reader - reader with SQL script.

parse

public void parse(SqlTokenizer tok)

handleParameter

protected java.lang.String handleParameter(java.lang.String name,
                                           boolean expression,
                                           boolean jdbcParam)
Called when parameter is encountered in SQL.

Parameters:
name - parameter name or expression
expression - true if specified name is an expression, not a simple property reference
jdbcParam - true if parameter value should be passed as prepared statement parameter. Othewise it's value should be inserted into statement text.
Returns:
substituion string.

statementParsed

protected void statementParsed(java.lang.String sql)
Invoked when SQL statement has been processed and all expressions handled.

Parameters:
sql - content of the preprocessed statement.


Copyright © Copyright 2006-2009 The Scriptella Project Team.