scala
import org.squeryl._
import org.squeryl.adapters.H2Adapter
case class User(id: Long, name: String, age: Int)
class UserTable extends Table[User] {
val users = table[User]("users")
val id = column[Long]("id", PrimaryKey)
val name = column[String]("name")
val age = column[Int]("age")
def * = id ~ name ~ age <> (User, User.unapply _)
}
object Main {
def main(args: Array[String]): Unit = {
Class.forName("org.h2.Driver")
SessionFactory.concreteFactory = Some(() => Session.create(
java.sql.DriverManager.getConnection("jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1", "sa", ""),
new H2Adapter))
transaction {
Schema.create
}
transaction {
Schema.users.insert(User(1, "Alice", 25))
Schema.users.insert(User(2, "Bob", 30))
}
transaction {
val users = from(Schema.users)(user => select(user) orderBy user.name)
users.foreach(println)
}
Session.cleanupResources()
}
}
<dependencies>
<dependency>
<groupId>org.squeryl</groupId>
<artifactId>squeryl_2.12</artifactId>
<version>0.9.10</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
</dependency>
</dependencies>