Class SelectAdapter

  • Direct Known Subclasses:
    FromSubQueryAdapter

    public class SelectAdapter
    extends Object
    An abstract representation of a select statement which can be translated into an executable select statement. Keeps track of bind variables (parameter markers) and hopefully is a bit easier to use (and is more reliable) than constructing SQL with StringBuilder. The goal is to support two main use-cases (which drive the API design):
    • 1. Simplify construction of hand-written SQL statements
    • 2. Support code-generated SQL where a statement is constructed from another model (e.g. FHIR search queries).

    The goal isn't to enforce building a syntactically perfect SQL statement - checking that is the role of the RDBMS SQL parser. But hopefully this makes things a bit easier, less error-prone and therefore quicker. It also helps to standardize the SQL statement building process across the project.

    • Constructor Detail

      • SelectAdapter

        public SelectAdapter​(Select select)
        Adapter this select statement
        Parameters:
        select -
      • SelectAdapter

        public SelectAdapter​(String... columns)
        Public constructor taking a collection of string column names
        Parameters:
        columns -
    • Method Detail

      • from

        public FromAdapter from​(String tableName,
                                Alias alias)
        Create a from clause for this select statement
        Returns:
      • from

        public FromAdapter from​(Select sub,
                                Alias alias)
        Add the sub-query select to the FROM clause
        Parameters:
        sub - the sub-query select statement
        alias -
        Returns:
      • from

        public FromAdapter from​(String table)
        Create a from clause for this select statement
        Returns:
      • getSelect

        public Select getSelect()
        Getter for the select statement we are managing
        Returns:
      • build

        public Select build()
        Get the statement we've been constructing
        Returns: