Package org.datanucleus.store.rdbms.sql
Class SQLText
- java.lang.Object
-
- org.datanucleus.store.rdbms.sql.SQLText
-
public class SQLText extends Object
Representation of a snippet of an SQL statement. May contain parameters. A 'parameter' in this context is an input parameter to the query (which will map on to a JDBC '?' in the resultant SQL). Call "applyParametersToStatement()" to set the parameter values in the PreparedStatement.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SQLText
append(char c)
Append a character to the SQL.SQLText
append(String s)
Append some SQL as a string.SQLText
append(SQLExpression expr)
Append an SQLExpression.SQLText
append(SQLExpression.ColumnExpressionList exprList)
Append a ColumnExpressionList.SQLText
append(SQLStatement stmt)
Append an SQLStatement.SQLText
append(SQLText st)
Append a SQLTextSQLText
appendParameter(String name, JavaTypeMapping mapping, Object value)
Append a parameter represented by a mapping (single datastore column).SQLText
appendParameter(String name, JavaTypeMapping mapping, Object value, int columnNumber)
Append a parameter represented by a mapping, for a column of a multi-column mapping.void
applyParametersToStatement(org.datanucleus.ExecutionContext ec, PreparedStatement ps)
Method to set the parameters in the supplied PreparedStatement using their mappings and provided values.void
changeMappingForParameter(String parameterName, JavaTypeMapping mapping)
Convenience method to change the mapping used for a parameter, if it is referenced by this SQL text object.void
clearStatement()
Convenience method to reset the SQL for the statement.void
encloseInParentheses()
Set to enclose this SQL in parentheses.List<SQLStatementParameter>
getParametersForStatement()
Accessor for the parameters for this SQLText (including all sub SQLText)SQLText
postpend(String s)
Set the String to append at the end of the SQL.SQLText
prepend(String s)
Prepend some SQL as a string.SQLText
removeLastPrependAppend()
Convenience method for the specific situation where you want to remove a DISTINCT that was just applied, hence removing the last append (of ")") and prepend (of "DISTINCT (").String
toSQL()
Accessor for the SQL of the statement.String
toString()
Accessor for the string form of the statement.
-
-
-
Constructor Detail
-
SQLText
public SQLText()
Constructor
-
SQLText
public SQLText(String initialSQLText)
Constructor- Parameters:
initialSQLText
- SQL text to start from
-
-
Method Detail
-
clearStatement
public void clearStatement()
Convenience method to reset the SQL for the statement. This is used when updating an expression internally, and need to regenerate the statement.
-
encloseInParentheses
public void encloseInParentheses()
Set to enclose this SQL in parentheses.
-
postpend
public SQLText postpend(String s)
Set the String to append at the end of the SQL.- Parameters:
s
- the string- Returns:
- the SQLText
-
prepend
public SQLText prepend(String s)
Prepend some SQL as a string.- Parameters:
s
- The string- Returns:
- The SQLText
-
append
public SQLText append(char c)
Append a character to the SQL.- Parameters:
c
- the char- Returns:
- the SQLText
-
append
public SQLText append(String s)
Append some SQL as a string.- Parameters:
s
- the String- Returns:
- the SQLText
-
append
public SQLText append(SQLStatement stmt)
Append an SQLStatement.- Parameters:
stmt
- the SQL Statement- Returns:
- the SQLText
-
append
public SQLText append(SQLExpression.ColumnExpressionList exprList)
Append a ColumnExpressionList.- Parameters:
exprList
- the ColumnExpression list- Returns:
- the SQLText
-
append
public SQLText append(SQLText st)
Append a SQLText- Parameters:
st
- the SQLText- Returns:
- the SQLText
-
append
public SQLText append(SQLExpression expr)
Append an SQLExpression.- Parameters:
expr
- the SQLExpression- Returns:
- the SQLText
-
appendParameter
public SQLText appendParameter(String name, JavaTypeMapping mapping, Object value)
Append a parameter represented by a mapping (single datastore column).- Parameters:
name
- The parameter namemapping
- the mappingvalue
- the parameter value- Returns:
- the SQLText
-
appendParameter
public SQLText appendParameter(String name, JavaTypeMapping mapping, Object value, int columnNumber)
Append a parameter represented by a mapping, for a column of a multi-column mapping.- Parameters:
name
- The parameter namemapping
- the mappingvalue
- the parameter valuecolumnNumber
- Number of the column represented here- Returns:
- the SQLText
-
removeLastPrependAppend
public SQLText removeLastPrependAppend()
Convenience method for the specific situation where you want to remove a DISTINCT that was just applied, hence removing the last append (of ")") and prepend (of "DISTINCT (").- Returns:
- the SQLText
-
changeMappingForParameter
public void changeMappingForParameter(String parameterName, JavaTypeMapping mapping)
Convenience method to change the mapping used for a parameter, if it is referenced by this SQL text object.- Parameters:
parameterName
- Name of the parametermapping
- The mapping to use instead
-
applyParametersToStatement
public void applyParametersToStatement(org.datanucleus.ExecutionContext ec, PreparedStatement ps)
Method to set the parameters in the supplied PreparedStatement using their mappings and provided values.- Parameters:
ec
- execution contextps
- The PreparedStatement
-
getParametersForStatement
public List<SQLStatementParameter> getParametersForStatement()
Accessor for the parameters for this SQLText (including all sub SQLText)- Returns:
- The list of parameters (in the order they appear in the SQL)
-
toSQL
public String toSQL()
Accessor for the SQL of the statement.- Returns:
- The SQL text
-
-