scala
import org.squeryl.PrimitiveTypeMode._
import org.squeryl.Schema
case class Person(id: Long, name: String, age: Int)
object MyDatabase extends Schema {
val persons = table[Person]("persons")
on(persons)(p => declare(
p.id is (primaryKey),
p.name is (unique)
))
}
object Main {
def main(args: Array[String]): Unit = {
Class.forName("com.mysql.jdbc.Driver")
SessionFactory.concreteFactory = Some(() =>
Session.create(
java.sql.DriverManager.getConnection("jdbc:mysql://localhost/mydb", "username", "password"),
new MySQLAdapter))
inTransaction {
MyDatabase.create
}
inTransaction {
MyDatabase.persons.insert(Person(1, "John", 25))
}
inTransaction {
val result = from(MyDatabase.persons)(p => where(p.age > 18) select p)
result.foreach(p => println(s"${p.id}: ${p.name} is ${p.age} years old"))
}
}
}