scala
import org.squeryl.adapters.H2Adapter
import org.squeryl.{SessionFactory, Session}
Class.forName("org.h2.Driver")
Session.concreteFactory = Some(() =>
Session.create(
java.sql.DriverManager.getConnection("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1", "sa", ""),
new H2Adapter))
val session = SessionFactory.newSession
scala
import org.squeryl.PrimitiveTypeMode._
import org.squeryl.Schema
case class User(id: Long, username: String, age: Int)
object MySchema extends Schema {
val users = table[User]("users")
}
scala
import org.squeryl.PrimitiveTypeMode._
val allUsers = from(MySchema.users)(user => select(user))
val user = from(MySchema.users)(user =>
where(user.username === "John")
select(user)).headOption
val newUser = User(1, "Michael", 25)
MySchema.users.insert(newUser)
scala
import org.apache.log4j.{Level, Logger}
Logger.getLogger("org.squeryl").setLevel(Level.DEBUG)
scala
import org.squeryl.dsl.QueryDsl
trait CountQueries extends QueryDsl {
def count[T](table: Table[T]): Long =
from(table)(t => select(count))
}