QueryBuilder

Provides interface to incrementally build and execute SQL statements.

QueryBuilder is an immutable structure. A new builder is returned with each requested modification, and a new statement and result set are created on each requested execution.

import java.sql.Connection

import scala.language.implicitConversions

import little.sql.Implicits.*
import little.sql.QueryBuilder

implicit val conn: Connection = ???

QueryBuilder("select * from users where group = ? and enabled = ?")
 .params("staff", true) // Set input parameter values
 .maxRows(10) // Limit result set to 10 rows
 .foreach { rs => printf(s"uid=%d%n", rs.getInt("id")) } // Use implicit connection

// Same as above except use map of parameters
QueryBuilder("select * from users where group = ${group} and enabled = ${enabled}")
 .params("group" -> "staff", "enabled" -> true)
 .maxRows(10)
 .foreach { rs => printf(s"uid=%d%n", rs.getInt("id")) }
Companion
object
class Object
trait Matchable
class Any

Value members

Abstract methods

def execute[T](handler: Execution => T)(implicit conn: Connection): T

Executes statement and passes result to supplied handler.

Executes statement and passes result to supplied handler.

Value Params
conn

connection to execute statement

handler

execution handler

def fetchSize: Int

Gets fetch size.

Gets fetch size.

def fetchSize(value: Int): QueryBuilder

Sets fetch size.

Sets fetch size.

def first[T](f: ResultSet => T)(implicit conn: Connection): Option[T]

Executes query and maps first row of result set using supplied function.

Executes query and maps first row of result set using supplied function.

If the result set is not empty, and if the supplied function's return value is not null, then Some value is returned; otherwise, None is returned.

Value Params
conn

connection to execute query

f

function

def flatMap[T](f: ResultSet => Iterable[T])(implicit conn: Connection): Seq[T]

Executes query and builds collection using elements mapped from each row of result set.

Executes query and builds collection using elements mapped from each row of result set.

Value Params
conn

connection to execute query

f

map function

def fold[T](init: T)(op: (T, ResultSet) => T)(implicit conn: Connection): T

Executes query and folds result set to single value using given initial value and binary operator.

Executes query and folds result set to single value using given initial value and binary operator.

Value Params
conn

connection to execute query

init

initial value

op

binary operator

def foreach(f: ResultSet => Unit)(implicit conn: Connection): Unit

Executes query and invokes supplied function for each row of result set.

Executes query and invokes supplied function for each row of result set.

Value Params
conn

connection to execute query

f

function

def getUpdateCount(implicit conn: Connection): Long

Executes update and returns update count.

Executes update and returns update count.

Value Params
conn

connection to execute update

def map[T](f: ResultSet => T)(implicit conn: Connection): Seq[T]

Executes query and maps each row of result set using supplied function.

Executes query and maps each row of result set using supplied function.

Value Params
conn

connection to execute query

f

map function

def maxRows: Int

Gets max rows.

Gets max rows.

def maxRows(value: Int): QueryBuilder

Sets max rows.

Sets max rows.

def params: Seq[InParam]

Gets parameters.

Gets parameters.

def params(values: Seq[InParam]): QueryBuilder

Sets parameters.

Sets parameters.

def params(values: Map[String, InParam]): QueryBuilder

Sets parameters using mapped values.

Sets parameters using mapped values.

def queryTimeout: Int

Gets query timeout.

Gets query timeout.

def queryTimeout(value: Int): QueryBuilder

Sets query timeout.

Sets query timeout.

def sql: String

Gets SQL.

Gets SQL.

def withResultSet[T](handler: ResultSet => T)(implicit conn: Connection): T

Executes query and passes result set to supplied handler.

Executes query and passes result set to supplied handler.

Value Params
conn

connection to execute query

handler

result set handler

Concrete methods

def params(one: InParam, more: InParam*): QueryBuilder

Sets parameters.

Sets parameters.

def params(one: (String, InParam), more: (String, InParam)*): QueryBuilder

Sets parameters using mapped values.

Sets parameters using mapped values.