Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sake92/squery

Simple SQL queries in Scala 3
https://github.com/sake92/squery

h2-database jdbc mysql oracle-db postgresql scala scala3 sql sql-library

Last synced: 26 days ago
JSON representation

Simple SQL queries in Scala 3

Awesome Lists containing this project

README

        

# squery

Simple SQL queries in Scala 3.

No DSLs, no fuss, just plain SQL.

Supports *any* JDBC driver.
Additional support for Postgres, MySql, MariaDb, Oracle, H2.

---
Scastie example: https://scastie.scala-lang.org/JArud6GGSLOmYyxCNsNdNw

---
Hello world:
```scala

// table rows
case class Customer(id: Int, name: String) derives SqlReadRow
case class Phone(id: Int, number: String) derives SqlReadRow

// joined row
case class CustomerWithPhone(c: Customer, p: Phone) derives SqlReadRow

val ds = JdbcDataSource()
ds.setURL("jdbc:h2:mem:")

val ctx = SqueryContext(ds)

ctx.run {
val res: Seq[CustomerWithPhone] = sql"""
SELECT c.id, c.name,
p.id, p.number
FROM customers c
JOIN phones p ON p.customer_id = c.id
""".readRows[CustomerWithPhone]()
}
```