Integrating with other database access libraries

你可以通过Play框架使用任何你喜欢的SQL数据库访问模块,可以简单的从play.api.db.DB 帮助器获取一个连接或数据源.

与ScalaQuery集成

至此你可以集成任何JDBC访问层其需要一个JDBC数据源。比如,与ScalaQuery集成:

  1. import play.api.db._
  2. import play.api.Play.current
  3. import org.scalaquery.ql._
  4. import org.scalaquery.ql.TypeMapper._
  5. import org.scalaquery.ql.extended.{ExtendedTable => Table}
  6. import org.scalaquery.ql.extended.H2Driver.Implicit._
  7. import org.scalaquery.session._
  8. object Task extends Table[(Long, String, Date, Boolean)]("tasks") {
  9. lazy val database = Database.forDataSource(DB.getDataSource())
  10. def id = column[Long]($ch08-"id", O PrimaryKey, O AutoInc)
  11. def name = column[String]($ch08-"name", O NotNull)
  12. def dueDate = column[Date]("due_date")
  13. def done = column[Boolean]("done")
  14. def * = id ~ name ~ dueDate ~ done
  15. def findAll = database.withSession { implicit db:Session =>
  16. (for(t <- this) yield t.id ~ t.name).list
  17. }
  18. }

通过JNDI展示数据源

有些库期望通过JNDI获取数据源引用。你可以在conf/application.conf中添加以下配置来通过JNDI展示任何Play框架管理的数据源:

  1. db.default.driver=org.h2.Driver
  2. db.default.url="jdbc:h2:mem:play"
  3. db.default.jndiName=DefaultDS