Class 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.
    • 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​(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 name
        mapping - the mapping
        value - 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 name
        mapping - the mapping
        value - the parameter value
        columnNumber - 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 parameter
        mapping - 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 context
        ps - 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
      • toString

        public String toString()
        Accessor for the string form of the statement.
        Overrides:
        toString in class Object
        Returns:
        String form of the statement