com.lucidchart.open.relate

Sql

Related Doc: package relate

trait Sql extends AnyRef

Sql is a trait for basic SQL queries.

It provides methods for parameter insertion and query execution.

import com.lucidchart.open.relate._
import com.lucidchart.open.relate.Query._

case class User(id: Long, name: String)

SQL("""
  SELECT id, name
  FROM users
  WHERE id={id}
""").on { implicit query =>
  long("id", 1L)
}.asSingle(RowParser { row =>
  User(row.long("id"), row.string("name"))
})
Self Type
Sql
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Sql
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. class BaseStatement extends AnyRef

    Attributes
    protected[com.lucidchart.open.relate]

Abstract Value Members

  1. abstract def applyParams(stmt: PreparedStatement): Unit

    Attributes
    protected
  2. abstract val parsedQuery: String

    Attributes
    protected

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. def asCollection[U, T[_]]()(implicit arg0: Parseable[U], cbf: CanBuildFrom[T[U], U, T[U]], connection: Connection): T[U]

  5. def asCollection[U, T[_]](parser: (SqlResult) ⇒ U)(implicit cbf: CanBuildFrom[T[U], U, T[U]], connection: Connection): T[U]

    Execute this query and get back the result as an arbitrary collection of records

    Execute this query and get back the result as an arbitrary collection of records

    parser

    the RowParser to use when parsing the result set

    connection

    the connection to use when executing the query

    returns

    the results as an arbitrary collection of records

  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def asIterable[A]()(implicit arg0: Parseable[A], connection: Connection): Iterable[A]

  8. def asIterable[A](parser: (SqlResult) ⇒ A)(implicit connection: Connection): Iterable[A]

    Execute this query and get back the result as an iterable of records

    Execute this query and get back the result as an iterable of records

    parser

    the RowParser to use when parsing the result set

    connection

    the connection to use when executing the query

    returns

    the results as an iterable of records

  9. def asIterator[A](parser: (SqlResult) ⇒ A, fetchSize: Int = 100)(implicit connection: Connection): Iterator[A]

    The asIterator method returns an Iterator that will stream data out of the database.

    The asIterator method returns an Iterator that will stream data out of the database. This avoids an OutOfMemoryError when dealing with large datasets. Bear in mind that many JDBC implementations will not allow additional queries to the connection before all records in the Iterator have been retrieved.

    parser

    the RowParser to parse rows with

    fetchSize

    the number of rows to fetch at a time, defaults to 100. If the JDBC Driver is MySQL, the fetchSize will always default to Int.MinValue, as MySQL's JDBC implementation ignores all other fetchSize values and only streams if fetchSize is Int.MinValue

  10. def asList[A]()(implicit arg0: Parseable[A], connection: Connection): List[A]

  11. def asList[A](parser: (SqlResult) ⇒ A)(implicit connection: Connection): List[A]

    Execute this query and get back the result as a List of records

    Execute this query and get back the result as a List of records

    parser

    the RowParser to use when parsing the result set

    connection

    the connection to use when executing the query

    returns

    the results as a List of records

  12. def asMap[U, V]()(implicit connection: Connection, p: Parseable[(U, V)]): Map[U, V]

  13. def asMap[U, V](parser: (SqlResult) ⇒ (U, V))(implicit connection: Connection): Map[U, V]

    Execute this query and get back the result as a Map of records

    Execute this query and get back the result as a Map of records

    parser

    the RowParser to use when parsing the result set. The RowParser should return a Tuple of size 2 containing the key and value

    connection

    the connection to use when executing the query

    returns

    the results as a Map of records

  14. def asMultiMap[U, V]()(implicit connection: Connection, p: Parseable[(U, V)]): Map[U, Set[V]]

  15. def asMultiMap[U, V](parser: (SqlResult) ⇒ (U, V))(implicit connection: Connection): Map[U, Set[V]]

  16. def asPairCollection[U, V, T[_, _]]()(implicit cbf: CanBuildFrom[T[U, V], (U, V), T[U, V]], connection: Connection, p: Parseable[(U, V)]): T[U, V]

  17. def asPairCollection[U, V, T[_, _]](parser: (SqlResult) ⇒ (U, V))(implicit cbf: CanBuildFrom[T[U, V], (U, V), T[U, V]], connection: Connection): T[U, V]

    Execute this query and get back the result as an arbitrary collection of key value pairs

    Execute this query and get back the result as an arbitrary collection of key value pairs

    parser

    the RowParser to use when parsing the result set

    connection

    the connection to use when executing the query

    returns

    the results as an arbitrary collection of key value pairs

  18. def asScalar[A]()(implicit connection: Connection): A

    Execute this query and get back the result as a single value.

    Execute this query and get back the result as a single value. Assumes that there is only one row and one value in the result set.

    connection

    the connection to use when executing the query

    returns

    the results as a single value

  19. def asScalarOption[A]()(implicit connection: Connection): Option[A]

    Execute this query and get back the result as an optional single value.

    Execute this query and get back the result as an optional single value. Assumes that there is only one row and one value in the result set.

    connection

    the connection to use when executing the query

    returns

    the results as an optional single value

  20. def asSeq[A]()(implicit arg0: Parseable[A], connection: Connection): Seq[A]

  21. def asSeq[A](parser: (SqlResult) ⇒ A)(implicit connection: Connection): Seq[A]

    Execute this query and get back the result as a sequence of records

    Execute this query and get back the result as a sequence of records

    parser

    the RowParser to use when parsing the result set

    connection

    the connection to use when executing the query

    returns

    the results as a sequence of records

  22. def asSet[A]()(implicit arg0: Parseable[A], connection: Connection): Set[A]

  23. def asSet[A](parser: (SqlResult) ⇒ A)(implicit connection: Connection): Set[A]

    Execute this query and get back the result as a Set of records

    Execute this query and get back the result as a Set of records

    parser

    the RowParser to use when parsing the result set

    connection

    the connection to use when executing the query

    returns

    the results as a Set of records

  24. def asSingle[A]()(implicit arg0: Parseable[A], connection: Connection): A

  25. def asSingle[A](parser: (SqlResult) ⇒ A)(implicit connection: Connection): A

    Execute this query and get back the result as a single record

    Execute this query and get back the result as a single record

    parser

    the RowParser to use when parsing the result set

    connection

    the connection to use when executing the query

    returns

    the results as a single record

  26. def asSingleOption[A]()(implicit arg0: Parseable[A], connection: Connection): Option[A]

  27. def asSingleOption[A](parser: (SqlResult) ⇒ A)(implicit connection: Connection): Option[A]

    Execute this query and get back the result as an optional single record

    Execute this query and get back the result as an optional single record

    parser

    the RowParser to use when parsing the result set

    connection

    the connection to use when executing the query

    returns

    the results as an optional single record

  28. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  29. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  30. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  31. def execute()(implicit connection: Connection): Boolean

    Execute a statement

    Execute a statement

    connection

    the db connection to use when executing the query

    returns

    whether the query succeeded in its execution

  32. def executeInsertCollection[U, T[_]](parser: (SqlResult) ⇒ U)(implicit cbf: CanBuildFrom[T[U], U, T[U]], connection: Connection): T[U]

    Execute the query and get the auto-incremented keys using a RowParser.

    Execute the query and get the auto-incremented keys using a RowParser. Provided for the case that a primary key is not an Int or BigInt

    parser

    the RowParser that can parse the returned keys

    connection

    the connection to use when executing the query

    returns

    the auto-incremented keys

  33. def executeInsertInt()(implicit connection: Connection): Int

    Execute the query and get the auto-incremented key as an Int

    Execute the query and get the auto-incremented key as an Int

    connection

    the connection to use when executing the query

    returns

    the auto-incremented key as an Int

  34. def executeInsertInts()(implicit connection: Connection): List[Int]

    Execute the query and get the auto-incremented keys as a List of Ints

    Execute the query and get the auto-incremented keys as a List of Ints

    connection

    the connection to use when executing the query

    returns

    the auto-incremented keys as a List of Ints

  35. def executeInsertLong()(implicit connection: Connection): Long

    Execute the query and get the auto-incremented key as a Long

    Execute the query and get the auto-incremented key as a Long

    connection

    the connection to use when executing the query

    returns

    the auto-incremented key as a Long

  36. def executeInsertLongs()(implicit connection: Connection): List[Long]

    Execute the query and get the auto-incremented keys as a a List of Longs

    Execute the query and get the auto-incremented keys as a a List of Longs

    connection

    the connection to use when executing the query

    returns

    the auto-incremented keys as a a List of Longs

  37. def executeInsertSingle[U](parser: (SqlResult) ⇒ U)(implicit connection: Connection): U

    Execute the query and get the auto-incremented key using a RowParser.

    Execute the query and get the auto-incremented key using a RowParser. Provided for the case that a primary key is not an Int or BigInt

    parser

    the RowParser that can parse the returned key

    connection

    the connection to use when executing the query

    returns

    the auto-incremented key

  38. def executeUpdate()(implicit connection: Connection): Int

    Execute an update

    Execute an update

    connection

    the db connection to use when executing the query

    returns

    the number of rows update by the query

  39. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  40. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  41. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  42. def insertionStatement(implicit connection: Connection): BaseStatement with InsertionStatementPreparer

    Attributes
    protected
  43. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  44. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  45. def normalStatement(implicit connection: Connection): BaseStatement with NormalStatementPreparer

    Attributes
    protected
  46. final def notify(): Unit

    Definition Classes
    AnyRef
  47. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  48. def results()(implicit connection: Connection): ResultSet

    Provides direct access to the underlying java.sql.ResultSet.

    Provides direct access to the underlying java.sql.ResultSet. Note that this ResultSet must be closed manually or by wrapping it in SqlResult.

    val results = SQL(query).results()
    . . .
    SqlResult(results).asList[A](parser)
    // or
    results.close()
    returns

    java.sql.ResultSet

  49. def statementString(implicit connection: Connection): String

    Calls PreparedStatement#toString, which for many JDBC implementations is the SQL query after parameter substitution.

    Calls PreparedStatement#toString, which for many JDBC implementations is the SQL query after parameter substitution. This is intended primarily for ad-hoc debugging.

    For more routine logging, consider other solutions, such as log4jdbc.

  50. def streamedStatement(fetchSize: Int)(implicit connection: Connection): BaseStatement with StreamedStatementPreparer

    Attributes
    protected
  51. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  52. def toString(): String

    Returns the SQL query, before parameter substitution.

    Returns the SQL query, before parameter substitution.

    Definition Classes
    Sql → AnyRef → Any
  53. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  54. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  55. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped