ProductPromotion
Logo

Scala

made by https://0x3d.site

GitHub - slick/slick: Slick (Scala Language Integrated Connection Kit) is a modern database query and access library for Scala
Slick (Scala Language Integrated Connection Kit) is a modern database query and access library for Scala - slick/slick
Visit Site

GitHub - slick/slick: Slick (Scala Language Integrated Connection Kit) is a modern database query and access library for Scala

GitHub - slick/slick: Slick (Scala Language Integrated Connection Kit) is a modern database query and access library for Scala

Slick

Sponsor1Badge

MavenBadge

DiscussionsBadge DiscordBadge GitterBadge

Slick is an advanced, comprehensive database access library for Scala with strongly-typed, highly composable APIs.

Slick makes it easy to use your database in a way that's natural to it. It allows you to work with relational databases almost as if you were using Scala collections, while at the same time giving you full control over when the database is accessed and how much data is transferred. And by writing your queries in Scala you can benefit from compile-time safety and great compositionality, while retaining the ability to drop down to raw SQL when necessary for custom or advanced database features.

Its features include:

  • Query API inspired by Scala's collections API
  • Full control over how the database schema is seen by Slick, by using an explicit representation that can be code-generated from the actual database
  • Asynchronous API using Future for complete results, and a streaming API that conforms to the Reactive Streams interface, for easy integration with any streaming library, such as Akka Streams, FS2, or ZIO.
  • Composability at many levels
    • Compose actions (steps to run in a database context) with for comprehensions
    • Compose queries with for comprehensions or combinators
    • Compose row expressions (column sets, predicates, and column mappings)
  • A database metadata introspection API

Slick features an advanced query compiler which can generate SQL for a variety of different database engines from the same Scala code, allowing you to focus on application logic without worrying about database-specific syntax and quirks.

Resources

Learn

Get help

Example

As a simple example we will create a Scala object Coffee, and a table to store instances of this object in the database:

import slick.jdbc.PostgresProfile.api._

// First declare our Scala object
final case class Coffee(name: String, price: Double)

// Next define how Slick maps from a database table to Scala objects
class Coffees(tag: Tag) extends Table[Coffee](tag, "COFFEES") {
  def name  = column[String]("NAME")
  def price = column[Double]("PRICE")
  def * = (name, price).mapTo[Coffee]
}

// The `TableQuery` object gives us access to Slick's rich query API
val coffees = TableQuery[Coffees]

// Inserting is done by appending to our query object
// as if it were a regular Scala collection
// SQL: insert into COFFEES (NAME, PRICE) values ('Latte', 2.50)
coffees += Coffee("Latte", 2.50)

// Fetching data is also done using the query object
// SQL: select NAME from COFFEES
coffees.map(_.name)

// More complex queries can be chained together
// SQL: select NAME, PRICE from COFFEES where PRICE < 10.0 order by NAME
coffees.filter(_.price < 10.0).sortBy(_.name)

Database support

The following databases are directly supported by Slick, and are currently covered by a large suite of automated tests to ensure compatibility:

Database JDBC Driver Tested server version
PostgreSQL "org.postgresql" % "postgresql" % "42.5.0" Latest
MySQL "com.mysql" % "mysql-connector-j" % "8.0.33" Latest
SQLServer "com.microsoft.sqlserver" % "mssql-jdbc" % "7.2.2.jre11" 2022
Oracle "com.oracle.database.jdbc.debug" % "ojdbc8_g" % "21.6.0.0.1" 11g
DB2 "com.ibm.db2.jcc" % "db2jcc" % "db2jcc4" 11.5.7.0
Derby/JavaDB "org.apache.derby" % "derby" % "10.14.2.0"
H2 "com.h2database" % "h2" % "1.4.200"
HSQLDB/HyperSQL "org.hsqldb" % "hsqldb" % "2.5.2"
SQLite "org.xerial" % "sqlite-jdbc" % "3.39.2.1"

Accessing other database systems is possible, although possibly with a reduced feature set.

Contributing

Slick is community-maintained: pull requests are very welcome, and we ask that all contributors abide by the Lightbend Community Code of Conduct.

Lightbend staff (such as @SethTisue) may be able to assist with administrative issues.

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory