slick.jdbc.JdbcBackend

DatabaseFactoryDef

trait DatabaseFactoryDef extends JdbcBackend.DatabaseFactoryDef

Factory methods for creating Database instances.

Definition Classes
JdbcBackendDatabaseComponent
Source
JdbcBackend.scala
Linear Supertypes
JdbcBackend.DatabaseFactoryDef, AnyRef, Any
Type Hierarchy Learn more about scaladoc diagrams
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. DatabaseFactoryDef
  2. DatabaseFactoryDef
  3. AnyRef
  4. Any
Implicitly
  1. by any2stringadd
  2. by any2stringfmt
  3. by any2ArrowAssoc
  4. by any2Ensuring
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. def +(other: String): String

    Implicit information
    This member is added by an implicit conversion from DatabaseFactoryDef to StringAdd performed by method any2stringadd in scala.Predef.
    Definition Classes
    StringAdd
  5. def ->[B](y: B): (DatabaseFactoryDef, B)

    Implicit information
    This member is added by an implicit conversion from DatabaseFactoryDef to ArrowAssoc[DatabaseFactoryDef] performed by method any2ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  6. final def ==(arg0: AnyRef): Boolean

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

    Definition Classes
    Any
  8. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  9. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. def ensuring(cond: (DatabaseFactoryDef) ⇒ Boolean, msg: ⇒ Any): DatabaseFactoryDef

    Implicit information
    This member is added by an implicit conversion from DatabaseFactoryDef to Ensuring[DatabaseFactoryDef] performed by method any2Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  11. def ensuring(cond: (DatabaseFactoryDef) ⇒ Boolean): DatabaseFactoryDef

    Implicit information
    This member is added by an implicit conversion from DatabaseFactoryDef to Ensuring[DatabaseFactoryDef] performed by method any2Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. def ensuring(cond: Boolean, msg: ⇒ Any): DatabaseFactoryDef

    Implicit information
    This member is added by an implicit conversion from DatabaseFactoryDef to Ensuring[DatabaseFactoryDef] performed by method any2Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  13. def ensuring(cond: Boolean): DatabaseFactoryDef

    Implicit information
    This member is added by an implicit conversion from DatabaseFactoryDef to Ensuring[DatabaseFactoryDef] performed by method any2Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. final def eq(arg0: AnyRef): Boolean

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

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

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. def forConfig(path: String, config: Config = ConfigFactory.load(), driver: Driver = null): Database

    Load a database configuration through Typesafe Config.

    Load a database configuration through Typesafe Config.

    The main config key to set is connectionPool. It determines the connection pool implementation to use. The default is HikariCP (for HikariCP). Use disabled to disable connection pooling (using the DriverManager directly). A third-party connection pool implementation can be selected by specifying the fully qualified name of an object implementing JdbcDataSourceFactory.

    The pool is tuned for asynchronous execution by default. Apart from the connection parameters you should only have to set numThreads and queueSize in most cases. In this scenario there is contention over the thread pool (via its queue), not over the connections, so you can have a rather large limit on the maximum number of connections (based on what the database server can still handle, not what is most efficient). Slick will use more connections than there are threads in the pool when sequencing non-database actions inside a transaction.

    The following config keys are supported for HikariCP and direct connections:

    • url (String, required): JDBC URL
    • driver or driverClassName (String, optional): JDBC driver class to load
    • user (String, optional): User name
    • password (String, optional): Password
    • isolation (String, optional): Transaction isolation level for new connections. Allowed values are: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ, SERIALIZABLE.
    • catalog (String, optional): Default catalog for new connections.
    • readOnly (Boolean, optional): Read Only flag for new connections.
    • properties (Map, optional): Properties to pass to the driver (or to the DataSource when using HikariCP with a dataSourceClass instead of a driver).
    • numThreads (Int, optional, default: 20): The number of concurrent threads in the thread pool for asynchronous execution of database actions. See the HikariCP wiki for more imformation about sizing the thread pool correctly. Note that for asynchronous execution in Slick you should tune the thread pool size (this parameter) accordingly instead of the maximum connection pool size.
    • queueSize (Int, optional, default: 1000): The size of the queue for database actions which cannot be executed immediately when all threads are busy. Beyond this limit new actions fail immediately. Set to 0 for no queue (direct hand-off) or to -1 for an unlimited queue size (not recommended).

    The following additional keys are supported for HikariCP only:

    • dataSourceClass (String, optional): The name of the DataSource class provided by the JDBC driver. This is preferred over using driver. Note that url is ignored when this key is set (You have to use properties to configure the database connection instead).
    • maxConnections (Int, optional, default: numThreads * 5): The maximum number of connections in the pool.
    • minConnections (Int, optional, default: same as numThreads): The minimum number of connections to keep in the pool.
    • connectionTimeout (Duration, optional, default: 1s): The maximum time to wait before a call to getConnection is timed out. If this time is exceeded without a connection becoming available, a SQLException will be thrown. 100ms is the minimum value.
    • idleTimeout (Duration, optional, default: 10min): The maximum amount of time that a connection is allowed to sit idle in the pool. A value of 0 means that idle connections are never removed from the pool.
    • maxLifetime (Duration, optional, default: 30min): The maximum lifetime of a connection in the pool. When an idle connection reaches this timeout, even if recently used, it will be retired from the pool. A value of 0 indicates no maximum lifetime.
    • connectionInitSql (String, optional): A SQL statement that will be executed after every new connection creation before adding it to the pool. If this SQL is not valid or throws an exception, it will be treated as a connection failure and the standard retry logic will be followed.
    • initializationFailFast (Boolean, optional, default: false): Controls whether the pool will "fail fast" if the pool cannot be seeded with initial connections successfully. If connections cannot be created at pool startup time, a RuntimeException will be thrown. This property has no effect if minConnections is 0.
    • leakDetectionThreshold (Duration, optional, default: 0): The amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak. A value of 0 means leak detection is disabled. Lowest acceptable value for enabling leak detection is 10s.
    • connectionTestQuery (String, optional): A statement that will be executed just before a connection is obtained from the pool to validate that the connection to the database is still alive. It is database dependent and should be a query that takes very little processing by the database (e.g. "VALUES 1"). When not set, the JDBC4 Connection.isValid() method is used instead (which is usually preferable).
    • registerMbeans (Boolean, optional, default: false): Whether or not JMX Management Beans ("MBeans") are registered.

    The following additional keys are supported for direct connections only:

    • keepAliveConnection (Boolean, optional, default: false): If this is set to true, one extra connection will be opened as soon as the database is accessed for the first time, and kept open until close() is called. This is useful for named in-memory databases in test environments.

    Unknown keys are ignored. Invalid values or missing mandatory keys will trigger a SlickException.

    path

    The path in the configuration file for the database configuration (e.g. foo.bar would find a database URL at config key foo.bar.url) or an empty string for the top level of the Config object.

    config

    The Config object to read from. This defaults to the global app config (e.g. in application.conf at the root of the class path) if not specified.

    driver

    An optional JDBC driver to call directly. If this is set to a non-null value, the driver key from the configuration is ignored. The default is to use the standard lookup mechanism. The explicit driver may not be supported by all connection pools (in particular, the default HikariCPJdbcDataSource).

  18. def forDataSource(ds: DataSource, executor: AsyncExecutor = AsyncExecutor.default()): DatabaseDef

    Create a Database based on a DataSource.

  19. def forDriver(driver: Driver, url: String, user: String = null, password: String = null, prop: Properties = null, executor: AsyncExecutor = AsyncExecutor.default()): DatabaseDef

    Create a Database that directly uses a Driver to open new connections.

    Create a Database that directly uses a Driver to open new connections. This is needed to open a JDBC URL with a driver that was not loaded by the system ClassLoader.

  20. def forName(name: String, executor: AsyncExecutor = null): DatabaseDef

    Create a Database based on the JNDI name of a DataSource.

  21. def forSource(source: JdbcDataSource, executor: AsyncExecutor = AsyncExecutor.default()): DatabaseDef

    Create a Database based on a JdbcDataSource.

  22. def forURL(url: String, prop: Map[String, String]): Database

    Create a Database that uses the DriverManager to open new connections.

  23. def forURL(url: String, user: String = null, password: String = null, prop: Properties = null, driver: String = null, executor: AsyncExecutor = AsyncExecutor.default(), keepAliveConnection: Boolean = false): DatabaseDef

    Create a Database that uses the DriverManager to open new connections.

  24. def formatted(fmtstr: String): String

    Implicit information
    This member is added by an implicit conversion from DatabaseFactoryDef to StringFormat performed by method any2stringfmt in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  25. final def getClass(): Class[_]

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

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

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

    Definition Classes
    AnyRef
  29. final def notify(): Unit

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

    Definition Classes
    AnyRef
  31. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  32. def toString(): String

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  36. def [B](y: B): (DatabaseFactoryDef, B)

    Implicit information
    This member is added by an implicit conversion from DatabaseFactoryDef to ArrowAssoc[DatabaseFactoryDef] performed by method any2ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Shadowed Implicit Value Members

  1. val self: Any

    Implicit information
    This member is added by an implicit conversion from DatabaseFactoryDef to StringAdd performed by method any2stringadd in scala.Predef.
    Shadowing
    This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
    To access this member you can use a type ascription:
    (databaseFactoryDef: StringAdd).self
    Definition Classes
    StringAdd
  2. val self: Any

    Implicit information
    This member is added by an implicit conversion from DatabaseFactoryDef to StringFormat performed by method any2stringfmt in scala.Predef.
    Shadowing
    This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
    To access this member you can use a type ascription:
    (databaseFactoryDef: StringFormat).self
    Definition Classes
    StringFormat

Deprecated Value Members

  1. implicit def dynamicSession: Session

    An implicit function that returns the thread-local session in a withSession block.

    An implicit function that returns the thread-local session in a withSession block.

    Definition Classes
    DatabaseFactoryDef
    Annotations
    @deprecated
    Deprecated

    (Since version 3.0) Use the new Action-based API instead

  2. def x: DatabaseFactoryDef

    Implicit information
    This member is added by an implicit conversion from DatabaseFactoryDef to ArrowAssoc[DatabaseFactoryDef] performed by method any2ArrowAssoc in scala.Predef.
    Shadowing
    This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
    To access this member you can use a type ascription:
    (databaseFactoryDef: ArrowAssoc[DatabaseFactoryDef]).x
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.10.0) Use leftOfArrow instead

  3. def x: DatabaseFactoryDef

    Implicit information
    This member is added by an implicit conversion from DatabaseFactoryDef to Ensuring[DatabaseFactoryDef] performed by method any2Ensuring in scala.Predef.
    Shadowing
    This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
    To access this member you can use a type ascription:
    (databaseFactoryDef: Ensuring[DatabaseFactoryDef]).x
    Definition Classes
    Ensuring
    Annotations
    @deprecated
    Deprecated

    (Since version 2.10.0) Use resultOfEnsuring instead

Inherited from JdbcBackend.DatabaseFactoryDef

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from DatabaseFactoryDef to StringAdd

Inherited by implicit conversion any2stringfmt from DatabaseFactoryDef to StringFormat

Inherited by implicit conversion any2ArrowAssoc from DatabaseFactoryDef to ArrowAssoc[DatabaseFactoryDef]

Inherited by implicit conversion any2Ensuring from DatabaseFactoryDef to Ensuring[DatabaseFactoryDef]

Ungrouped