Object/Class

scalikejdbc

DB

Related Docs: class DB | package scalikejdbc

Permalink

object DB extends LoanPattern with Serializable

Basic Database Accessor

You can start with DB and blocks if using scalikejdbc.ConnectionPool.singleton().

Using DBSession:

ConnectionPool.singleton("jdbc:...","user","password")
case class User(id: Int, name: String)

val users = DB readOnly { session =>
  session.list("select * from user") { rs =>
    User(rs.int("id"), rs.string("name"))
  }
}

DB autoCommit { session =>
  session.update("insert into user values (?,?)", 123, "Alice")
}

DB localTx { session =>
  session.update("insert into user values (?,?)", 123, "Alice")
}

using(DB(ConnectionPool.borrow())) { db =>
  db.begin()
  try {
    DB withTx { session =>
      session.update("update user set name = ? where id = ?", "Alice", 123)
    }
    db.commit()
  } catch { case e =>
    db.rollbackIfActive()
    throw e
  }
}

Using SQL:

ConnectionPool.singleton("jdbc:...","user","password")
case class User(id: Int, name: String)

val users = DB readOnly { implicit session =>
  SQL("select * from user").map { rs =>
    User(rs.int("id"), rs.string("name"))
  }.list.apply()
}

DB autoCommit { implicit session =>
  SQL("insert into user values (?,?)").bind(123, "Alice").update.apply()
}

DB localTx { implicit session =>
  SQL("insert into user values (?,?)").bind(123, "Alice").update.apply()
}

using(DB(ConnectionPool.borrow())) { db =>
  db.begin()
  try {
    DB withTx { implicit session =>
      SQL("update user set name = ? where id = ?").bind("Alice", 123).update.apply()
    }
    db.commit()
  } catch { case e =>
    db.rollbackIfActive()
    throw e
  }
}
Source
DB.scala
Linear Supertypes
Serializable, Serializable, LoanPattern, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. DB
  2. Serializable
  3. Serializable
  4. LoanPattern
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. type CPContext = ConnectionPoolContext

    Permalink
  2. type Closable = AnyRef { def close(): Unit }

    Permalink
    Definition Classes
    LoanPattern

Value Members

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

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  4. val NoCPContext: NoConnectionPoolContext.type

    Permalink
  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def autoCommit[A](execution: (DBSession) ⇒ A)(implicit context: CPContext = NoCPContext): A

    Permalink

    Begins a auto-commit block easily with ConnectionPool.

    Begins a auto-commit block easily with ConnectionPool.

    A

    return type

    execution

    execution

    context

    connection pool context

    returns

    result value

  7. def autoCommitSession()(implicit context: CPContext = NoCPContext): DBSession

    Permalink

    Returns auto-commit session instance.

    Returns auto-commit session instance. You SHOULD close this instance by yourself.

    context

    connection pool context

    returns

    session

  8. def autoCommitWithConnection[A](execution: (Connection) ⇒ A)(implicit context: CPContext = NoCPContext): A

    Permalink

    Begins a auto-commit block easily with ConnectionPool and pass not session but connection to execution block.

    Begins a auto-commit block easily with ConnectionPool and pass not session but connection to execution block.

    A

    return type

    execution

    execution

    context

    connection pool context

    returns

    result value

  9. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. def connect(conn: Connection = ConnectionPool.borrow()): DB

    Permalink

    Get a connection and returns a DB instance.

    Get a connection and returns a DB instance.

    conn

    connection

    returns

    DB instance

  11. def connected(implicit conn: Connection): DB

    Permalink

    Returns a DB instance by using an implicit Connection object.

    Returns a DB instance by using an implicit Connection object.

    conn

    connection

    returns

    DB instance

  12. def describe(table: String)(implicit context: CPContext = NoCPContext): String

    Permalink

    Returns describe style string value for the table

    Returns describe style string value for the table

    table

    table name (with schema optionally)

    context

    connection pool context as implicit parameter

    returns

    described information

  13. final def eq(arg0: AnyRef): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  15. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  16. def futureLocalTx[A](execution: (DBSession) ⇒ Future[A])(implicit context: CPContext = NoCPContext, ec: ExecutionContext): Future[A]

    Permalink

    Begins a local-tx block that returns a Future value easily with ConnectionPool.

    Begins a local-tx block that returns a Future value easily with ConnectionPool.

    A

    future result type

    execution

    execution that returns a future value

    context

    connection pool context

    returns

    future result value

  17. def futureUsing[R <: Closable, A](resource: R)(f: (R) ⇒ Future[A])(implicit ec: ExecutionContext): Future[A]

    Permalink

    Guarantees a Closeable resource will be closed after being passed to a block that takes the resource as a parameter and returns a Future.

    Guarantees a Closeable resource will be closed after being passed to a block that takes the resource as a parameter and returns a Future.

    Definition Classes
    LoanPattern
  18. def getAllTableNames()(implicit context: CPContext = NoCPContext): List[String]

    Permalink

    Returns all the table names

    Returns all the table names

    context

    connection pool context as implicit parameter

    returns

    table information

  19. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  20. def getColumnNames(table: String)(implicit context: CPContext = NoCPContext): List[String]

    Permalink
  21. def getTable(table: String)(implicit context: CPContext = NoCPContext): Option[Table]

    Permalink

    Returns table information

    Returns table information

    table

    table name (with schema optionally)

    context

    connection pool context as implicit parameter

    returns

    table information

  22. def getTableNames(tableNamePattern: String)(implicit context: CPContext = NoCPContext): List[String]

    Permalink

    Returns multiple table information

    Returns multiple table information

    tableNamePattern

    table name pattern (with schema optionally)

    context

    connection pool context as implicit parameter

    returns

    table information

  23. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  24. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  25. def localTx[A](execution: (DBSession) ⇒ A)(implicit context: CPContext = NoCPContext, boundary: TxBoundary[A] = defaultTxBoundary[A]): A

    Permalink

    Begins a local-tx block easily with ConnectionPool.

    Begins a local-tx block easily with ConnectionPool.

    A

    return type

    execution

    execution

    context

    connection pool context

    returns

    result value

  26. def localTxWithConnection[A](execution: (Connection) ⇒ A)(implicit context: CPContext = NoCPContext, boundary: TxBoundary[A] = defaultTxBoundary[A]): A

    Permalink

    Begins a local-tx block easily with ConnectionPool and pass not session but connection to execution block.

    Begins a local-tx block easily with ConnectionPool and pass not session but connection to execution block.

    A

    return type

    execution

    execution

    context

    connection pool context

    returns

    result value

  27. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  28. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  29. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  30. def readOnly[A](execution: (DBSession) ⇒ A)(implicit context: CPContext = NoCPContext): A

    Permalink

    Begins a read-only block easily with ConnectionPool.

    Begins a read-only block easily with ConnectionPool.

    A

    return type

    execution

    execution

    context

    connection pool context

    returns

    result value

  31. def readOnlySession()(implicit context: CPContext = NoCPContext): DBSession

    Permalink

    Returns read-only session instance.

    Returns read-only session instance. You SHOULD close this instance by yourself.

    context

    connection pool context

    returns

    session

  32. def readOnlyWithConnection[A](execution: (Connection) ⇒ A)(implicit context: CPContext = NoCPContext): A

    Permalink

    Begins a read-only block easily with ConnectionPool and pass not session but connection to execution block.

    Begins a read-only block easily with ConnectionPool and pass not session but connection to execution block.

    A

    return type

    execution

    execution

    context

    connection pool context

    returns

    result value

  33. def showTables(tableNamePattern: String = "%", tableTypes: Array[String] = Array("TABLE", "VIEW"))(implicit context: CPContext = NoCPContext): String

    Permalink

    Returns table name list

    Returns table name list

    tableNamePattern

    table name pattern (with schema optionally)

    context

    connection pool context as implicit parameter

    returns

    table name list

  34. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  35. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  36. def using[R <: Closable, A](resource: R)(f: (R) ⇒ A): A

    Permalink
    Definition Classes
    LoanPattern
  37. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  40. def withinTx[A](execution: (DBSession) ⇒ A)(implicit db: DB): A

    Permalink

    Begins a within-tx block easily with a DB instance as an implicit parameter.

    Begins a within-tx block easily with a DB instance as an implicit parameter.

    A

    return type

    execution

    execution

    db

    DB instance as an implicit parameter

    returns

    result value

  41. def withinTxSession()(implicit db: DB): DBSession

    Permalink

    Returns within-tx session instance.

    Returns within-tx session instance. You SHOULD close this instance by yourself.

    db

    DB instance as an implicit parameter

    returns

    session

  42. def withinTxWithConnection[A](execution: (Connection) ⇒ A)(implicit db: DB): A

    Permalink

    Begins a within-tx block easily with a DB instance as an implicit parameter and pass not session but connection to execution block.

    Begins a within-tx block easily with a DB instance as an implicit parameter and pass not session but connection to execution block.

    A

    return type

    execution

    execution

    db

    DB instance as an implicit parameter

    returns

    result value

Inherited from Serializable

Inherited from Serializable

Inherited from LoanPattern

Inherited from AnyRef

Inherited from Any

Ungrouped