QueryBuilder

Provides interface to incrementally build and execute SQL statements.

import java.sql.Connection

import scala.language.implicitConversions

import little.sql.{ *, given }

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)(using conn: Connection): T

Executes statement and passes result to supplied handler.

Executes statement and passes result to supplied handler.

Value parameters:
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 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 query[T](f: ResultSet => T)(using conn: Connection): T

Executes query and passes result set to supplied function.

Executes query and passes result set to supplied function.

Value parameters:
conn

connection to execute query

f

function

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 update[T](f: Long => T)(using conn: Connection): T

Executes update and passes update count to supplied function.

Executes update and passes update count to supplied function.

Value parameters:
conn

connection to execute update

f

function

Concrete methods

def executeUpdate()(using conn: Connection): Long

Executes update and returns update count.

Executes update and returns update count.

Value parameters:
conn

connection to execute update

def first[T](f: ResultSet => T)(using 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 parameters:
conn

connection to execute query

f

function

def flatMap[T](f: ResultSet => Iterable[T])(using 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 parameters:
conn

connection to execute query

f

map function

def fold[T](init: T)(op: (T, ResultSet) => T)(using 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 parameters:
conn

connection to execute query

init

initial value

op

binary operator

def foreach(f: ResultSet => Unit)(using 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 parameters:
conn

connection to execute query

f

function

def map[T](f: ResultSet => T)(using 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 parameters:
conn

connection to execute query

f

map function

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.