Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.flexstor.ejb.util
Class FlexSqlPreparedStatement  view FlexSqlPreparedStatement download FlexSqlPreparedStatement.java

java.lang.Object
  extended bycom.flexstor.ejb.util.FlexSqlPreparedStatement

public class FlexSqlPreparedStatement
extends java.lang.Object

FlexSqlPreparedStatement class dinamically creates a java.sql.PreparedStatement (SELECT, INSERT, UPDATE and DELETE). FlexSqlPreparedStatement constructs SQL statements of the following form:

 SELECT field1, .., fieldN
     [INTO new_table]
     FROM table1, .., tableN
     [WHERE (condition1 operand1 condition2) .. operandN-1 conditionN]
     [SORT BY field1, .., fieldN]
     [ORDER BY field1, .., fieldN]

 INSERT INTO table
     ( field1, .., fieldN )
     VALUES ( value1, .., valueN ) | select_statement

 UPDATE table
     SET field1 = value1, .., fieldN = valueN
     [WHERE (condition1 operand1 condition2) .. operandN-1 conditionN]

 DELETE FROM table
     [WHERE (condition1 operand1 condition2) .. operandN-1 conditionN]

 Where:
     condition = field operand value | select_statement | nested condition
 Notes:
     Clauses in brackets ( [] ) are optional
     Clauses separated by pipe ( | ) are alternatives
 

Since:
FLEXSTORdb 3.0

Field Summary
private  boolean bAddInto
           
private  boolean bAddOrderBy
           
private  boolean bAddSortBy
           
private  boolean bAddWhere
           
static int DELETE
           
static int FIELD_TYPE_COLUMN
           
private  java.util.Hashtable htFieldValueList
           
static int INSERT
           
private  int nStatement
           
private  java.lang.StringBuffer sbTempWhereClause
           
private  java.lang.StringBuffer sbWhereClause
           
static int SELECT
           
private  java.lang.String sNewTable
           
static int UPDATE
           
private  java.util.Vector vFieldList
           
private  java.util.Vector vOrderByFields
           
private  java.util.Vector vSortByFields
           
private  java.util.Vector vTableList
           
private  java.util.Vector vTempWhereClause
           
private  java.util.Vector vValueList
           
private  java.util.Vector vValueStatementList
           
private  java.util.Vector vWhereClause
           
 
Constructor Summary
FlexSqlPreparedStatement(int nStatement)
           
 
Method Summary
 void addField(java.lang.String sField)
          Adds one field for a SELECT or INSERT statement.
 void addFields(java.util.Vector vFields)
          Adds multiple fields for a SELECT or INSERT statement.
 void addFieldsValues(java.util.Hashtable htFieldsValues)
          Adds multiple fields/values to be set in an INSERT or UPDATE statement.
 void addFieldValue(java.lang.String sField, int nType, java.lang.String sValue)
          Adds a single field/value to be set in an INSERT or UPDATE statement.
 void addIntoClause(java.lang.String sNewTable)
          Adds the INTO new_table clause to the SELECT statement.
 void addOrderByClause(java.lang.String sField)
          Adds a field to the ORDER BY clause to the SELECT statement.
 void addOrderByClause(java.util.Vector vFields)
          Adds the ORDER BY clause to the SELECT statement.
 void addSortByClause(java.lang.String sField)
          Adds a field to the SORT BY clause to the SELECT statement.
 void addSortByClause(java.util.Vector vFields)
          Adds the SORT BY clause to the SELECT statement.
 void addTable(java.lang.String sTable)
          Adds a table for a SELECT, INSERT, UPDATE or DELETE statement.
 void addTables(java.util.Vector vTables)
          Adds multiple tables for a SELECT statement.
 void addValue(int nType, java.lang.String sValue)
          Adds a single value to be set in an INSERT statement.
 void addValue(java.util.Vector vSelectStatement)
          Adds a SELECT statement for a INSERT statement.
 void addValues(java.util.Vector vValues)
          Adds multiple values to be set in an INSERT statement.
 void addWhereClause()
          Add the newly constructed WHERE clause to the SELECT, UPDATE or DELETE statement.
 void appendConditionToWhere(java.lang.String sExternalOp, java.lang.String sField, java.lang.String sInternalOp, int nType, java.lang.String sValue)
          Appends a condition to a "in construction" WHERE clause.
 void appendInConditionToWhere(java.lang.String sExternalOp, java.lang.String sField, java.util.Vector vValues)
          This method appends a IN condition to a "in construction" WHERE clause.
 void appendSelectConditionToWhere(java.lang.String sExternalOp, java.util.Vector vSelectStatement)
          Appends a condition to a "in construction" WHERE clause.
 void appendToWhereClause(java.lang.String sOperand)
          Append a condition to a WHERE clause already added to the SELECT, UPDATE or DELETE statement.
private  java.util.Vector constructDelete()
           
private  java.util.Vector constructInsert()
           
private  java.util.Vector constructSelect()
           
private  java.util.Vector constructUpdate()
           
 void createConditionForWhere(java.lang.String sField, java.lang.String sInternalOp, int nType, java.lang.String sValue)
          Creates the first condition for a WHERE clause.
 void createInConditionForWhere(java.lang.String sField, java.util.Vector vValues)
          This method creates a IN condition for a "in construction" WHERE clause.
 void createSelectConditionForWhere(java.util.Vector vSelectStatement)
          Creates a select condition as the first condition of a WHERE clause.
 void encloseWhereCondition()
          Encloses between parenthesis a condition for a "in construction" WHERE clause.
 java.sql.PreparedStatement getPreparedStatement(java.sql.Connection connection)
          Returns the java.sql.PreparedStatement object, ready for invoking the execute(), executeQuery() or executeUpdate() method.
private  java.sql.PreparedStatement getPreparedStatement(java.sql.Connection connection, java.util.Vector vStatement)
          This method takes a Vector of String[] (field type and value ) and replace each argument of the PreparedStatement with its corresponding value in the Vector.
 java.util.Vector getStatement()
          Returns a statement created through the methods in this class.
private  java.lang.String[] replaceValueInSelect(int nType, java.lang.String sValue)
          This method takes a String of the form: ( SELECT cl_buck_0 FROM cl0_make_lu WHERE make LIKE 'Ch%' ) or nvl(( SELECT cl_buck_0 FROM cl0_make_lu WHERE make LIKE 'Ch%' ), 0) and returns two Strings of the form: saReturned[0] = ( SELECT cl_buck_0 FROM cl0_make_lu WHERE make LIKE ? ) or saReturned[0] = nvl(( SELECT cl_buck_0 FROM cl0_make_lu WHERE make LIKE ? ), 0) and saReturned[1] = Ch%
 java.lang.String toString()
          Get a String representation of this statement.
 boolean whereClauseExists()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

SELECT

public static final int SELECT
See Also:
Constant Field Values

INSERT

public static final int INSERT
See Also:
Constant Field Values

UPDATE

public static final int UPDATE
See Also:
Constant Field Values

DELETE

public static final int DELETE
See Also:
Constant Field Values

FIELD_TYPE_COLUMN

public static final int FIELD_TYPE_COLUMN
See Also:
Constant Field Values

nStatement

private int nStatement

vTableList

private java.util.Vector vTableList

vFieldList

private java.util.Vector vFieldList

vValueList

private java.util.Vector vValueList

vValueStatementList

private java.util.Vector vValueStatementList

htFieldValueList

private java.util.Hashtable htFieldValueList

sNewTable

private java.lang.String sNewTable

vSortByFields

private java.util.Vector vSortByFields

vOrderByFields

private java.util.Vector vOrderByFields

sbWhereClause

private java.lang.StringBuffer sbWhereClause

vWhereClause

private java.util.Vector vWhereClause

sbTempWhereClause

private java.lang.StringBuffer sbTempWhereClause

vTempWhereClause

private java.util.Vector vTempWhereClause

bAddInto

private boolean bAddInto

bAddSortBy

private boolean bAddSortBy

bAddOrderBy

private boolean bAddOrderBy

bAddWhere

private boolean bAddWhere
Constructor Detail

FlexSqlPreparedStatement

public FlexSqlPreparedStatement(int nStatement)
Method Detail

addTable

public void addTable(java.lang.String sTable)
Adds a table for a SELECT, INSERT, UPDATE or DELETE statement. For a SELECT statement, this method could be called to add more than one table into the FROM clause.
 SELECT ... FROM table1, .., tableN
 INSERT INTO table
 UPDATE table
 DELETE FROM table
 


addTables

public void addTables(java.util.Vector vTables)
Adds multiple tables for a SELECT statement.
 SELECT ... FROM table1, .., tableN
 


addField

public void addField(java.lang.String sField)
Adds one field for a SELECT or INSERT statement. This method could be called several times for adding more fields.
 SELECT field1, .., fieldN
 INSERT INTO ... ( field1, fieldN )
 


addFields

public void addFields(java.util.Vector vFields)
Adds multiple fields for a SELECT or INSERT statement.
 SELECT field1, .., fieldN
 INSERT INTO ... ( field1, fieldN )
 


addIntoClause

public void addIntoClause(java.lang.String sNewTable)
Adds the INTO new_table clause to the SELECT statement.
 INTO new_table
 


addSortByClause

public void addSortByClause(java.lang.String sField)
Adds a field to the SORT BY clause to the SELECT statement. This method could be called several times for adding more fields.
 SORT BY field1, .., fieldN
 


addSortByClause

public void addSortByClause(java.util.Vector vFields)
Adds the SORT BY clause to the SELECT statement.
 SORT BY field1, .., fieldN
 


addOrderByClause

public void addOrderByClause(java.lang.String sField)
Adds a field to the ORDER BY clause to the SELECT statement. This method could be called several times for adding more fields.
 ORDER BY field1, .., fieldN
 


addOrderByClause

public void addOrderByClause(java.util.Vector vFields)
Adds the ORDER BY clause to the SELECT statement.
 ORDER BY field1, .., fieldN
 


createConditionForWhere

public void createConditionForWhere(java.lang.String sField,
                                    java.lang.String sInternalOp,
                                    int nType,
                                    java.lang.String sValue)
Creates the first condition for a WHERE clause. The WHERE clause must be added to the statement by calling addWhereClause()
 WHERE field1 operand1 value1
 


appendConditionToWhere

public void appendConditionToWhere(java.lang.String sExternalOp,
                                   java.lang.String sField,
                                   java.lang.String sInternalOp,
                                   int nType,
                                   java.lang.String sValue)
Appends a condition to a "in construction" WHERE clause.
 -WHERE field1 operand1 value1- OPERAND field2 operand2 value2
 


createSelectConditionForWhere

public void createSelectConditionForWhere(java.util.Vector vSelectStatement)
Creates a select condition as the first condition of a WHERE clause. The WHERE clause must be added to the statement by calling addWhereClause() The argument must be a Vector returned by a call to FlexSqlPreparedStatement.getStatement() containing a previously created SQL SELECT statement.
 WHERE select field1, .., fieldN from table ...
 


appendSelectConditionToWhere

public void appendSelectConditionToWhere(java.lang.String sExternalOp,
                                         java.util.Vector vSelectStatement)
Appends a condition to a "in construction" WHERE clause. The argument must be a Vector returned by a call to FlexSqlPreparedStatement.getStatement() containing a previously created SQL SELECT statement.
 -WHERE select field1, .., fieldN from table ...- OPERAND select field1, .., fieldN from table ...
 


createInConditionForWhere

public void createInConditionForWhere(java.lang.String sField,
                                      java.util.Vector vValues)
This method creates a IN condition for a "in construction" WHERE clause.
 WHERE field IN ( value1, .., valueN )
 


appendInConditionToWhere

public void appendInConditionToWhere(java.lang.String sExternalOp,
                                     java.lang.String sField,
                                     java.util.Vector vValues)
This method appends a IN condition to a "in construction" WHERE clause.
 -WHERE field1 operand1 value1- OPERAND field IN ( value1, .., valueN )
 


encloseWhereCondition

public void encloseWhereCondition()
Encloses between parenthesis a condition for a "in construction" WHERE clause.
 WHERE (field1 operand1 value1)
 


addWhereClause

public void addWhereClause()
Add the newly constructed WHERE clause to the SELECT, UPDATE or DELETE statement.
 -SELECT ...- WHERE condition1
 -UPDATE ...- WHERE condition1
 -DELETE FROM ...- WHERE condition1
 


appendToWhereClause

public void appendToWhereClause(java.lang.String sOperand)
Append a condition to a WHERE clause already added to the SELECT, UPDATE or DELETE statement.
 -SELECT ... WHERE condition1- OPERAND condition2
 -UPDATE ... WHERE condition1- OPERAND condition2
 -DELETE FROM ... WHERE condition1- OPERAND condition2
 


addFieldValue

public void addFieldValue(java.lang.String sField,
                          int nType,
                          java.lang.String sValue)
Adds a single field/value to be set in an INSERT or UPDATE statement. This method could be called several times for adding more fields/values. The sValue argument must be a valid String representation of the actual field type defined in nType. If the type is: FieldConstantsI.FIELD_TYPE_NUMBER sValue must be a String representing a java.lang.Integer or java.lang.Long FieldConstantsI.FIELD_TYPE_DATE sValue must be a String representating a java.util.Date FieldConstantsI.FIELD_TYPE_STRING sValue must be a java.lang.String FieldConstantsI.FIELD_TYPE_DATETIME sValue must be a String representating a java.util.Date FieldConstantsI.FIELD_TYPE_TIME sValue must be a String representating a java.util.Date
 -INSERT INTO table- ( field1, .., fieldN )  VALUES ( value1, .., valueN )
 -UPDATE table- SET field1 = value1, .., fieldN = valueN
 


addFieldsValues

public void addFieldsValues(java.util.Hashtable htFieldsValues)
Adds multiple fields/values to be set in an INSERT or UPDATE statement. The value must be a valid String representation of the actual field type defined in nType. If the type is: FieldConstantsI.FIELD_TYPE_NUMBER sValue must be a String representing a java.lang.Integer or java.lang.Long FieldConstantsI.FIELD_TYPE_DATE sValue must be a String representating a java.util.Date FieldConstantsI.FIELD_TYPE_STRING sValue must be a java.lang.String FieldConstantsI.FIELD_TYPE_DATETIME sValue must be a String representating a java.util.Date FieldConstantsI.FIELD_TYPE_TIME sValue must be a String representating a java.util.Date
 -INSERT INTO table- ( field1, .., fieldN )  VALUES ( value1, .., valueN )
 -UPDATE table- SET field1 = value1, .., fieldN = valueN
 


addValue

public void addValue(int nType,
                     java.lang.String sValue)
Adds a single value to be set in an INSERT statement. This method could be called several times for adding more values. The sValue argument must be a valid String representation of the actual field type defined in nType. If the type is: FieldConstantsI.FIELD_TYPE_NUMBER sValue must be a String representing a java.lang.Integer or java.lang.Long FieldConstantsI.FIELD_TYPE_DATE sValue must be a String representating a java.util.Date FieldConstantsI.FIELD_TYPE_STRING sValue must be a java.lang.String FieldConstantsI.FIELD_TYPE_DATETIME sValue must be a String representating a java.util.Date FieldConstantsI.FIELD_TYPE_TIME sValue must be a String representating a java.util.Date
 -INSERT INTO table-  VALUES ( value1, .., valueN )
 


addValues

public void addValues(java.util.Vector vValues)
Adds multiple values to be set in an INSERT statement. The value must be a valid String representation of the actual field type defined in nType. If the type is: FieldConstantsI.FIELD_TYPE_NUMBER sValue must be a String representing a java.lang.Integer or java.lang.Long FieldConstantsI.FIELD_TYPE_DATE sValue must be a String representating a java.util.Date FieldConstantsI.FIELD_TYPE_STRING sValue must be a java.lang.String FieldConstantsI.FIELD_TYPE_DATETIME sValue must be a String representating a java.util.Date FieldConstantsI.FIELD_TYPE_TIME sValue must be a String representating a java.util.Date
 -INSERT INTO table-  VALUES ( value1, .., valueN )
 


addValue

public void addValue(java.util.Vector vSelectStatement)
Adds a SELECT statement for a INSERT statement. The argument must be a Vector returned by a call to FlexSqlPreparedStatement.getStatement() containing a previously created SQL SELECT statement.
 -INSERT INTO table ( field1, .., fieldN )- select field1, .., fieldN from table ...
 


getStatement

public java.util.Vector getStatement()
Returns a statement created through the methods in this class.


constructSelect

private java.util.Vector constructSelect()

constructInsert

private java.util.Vector constructInsert()

constructUpdate

private java.util.Vector constructUpdate()

constructDelete

private java.util.Vector constructDelete()

getPreparedStatement

public java.sql.PreparedStatement getPreparedStatement(java.sql.Connection connection)
                                                throws java.sql.SQLException
Returns the java.sql.PreparedStatement object, ready for invoking the execute(), executeQuery() or executeUpdate() method.


getPreparedStatement

private java.sql.PreparedStatement getPreparedStatement(java.sql.Connection connection,
                                                        java.util.Vector vStatement)
                                                 throws java.sql.SQLException
This method takes a Vector of String[] (field type and value ) and replace each argument of the PreparedStatement with its corresponding value in the Vector.


whereClauseExists

public boolean whereClauseExists()

replaceValueInSelect

private java.lang.String[] replaceValueInSelect(int nType,
                                                java.lang.String sValue)
This method takes a String of the form: ( SELECT cl_buck_0 FROM cl0_make_lu WHERE make LIKE 'Ch%' ) or nvl(( SELECT cl_buck_0 FROM cl0_make_lu WHERE make LIKE 'Ch%' ), 0) and returns two Strings of the form: saReturned[0] = ( SELECT cl_buck_0 FROM cl0_make_lu WHERE make LIKE ? ) or saReturned[0] = nvl(( SELECT cl_buck_0 FROM cl0_make_lu WHERE make LIKE ? ), 0) and saReturned[1] = Ch%


toString

public java.lang.String toString()
Get a String representation of this statement.