Search code examples
scalaplayframeworkanorm

How to use Anorm outside of Play?


How do you use Anorm outside of play in Scala? In the Anorm document for play, it simply uses something like:

DB.withConnection { implicit c =>
  val result: Boolean = SQL("Select 1").execute()    
} 

The DB object is only for Play. How do you use Anorm alone without using Play?


Solution

  • There is no need of DB object (part of Play JDBC not Anorm). Anorm works as along as you provide it connection as implicit:

    implicit val con: java.sql.Connection = ??? // whatever you want to resolve connection
    
    SQL"SELECT * FROM Table".as(...)
    

    You can resolve JDBC connection in many way: basic DriverManager.getConnection, JNDI, ...

    As for dependency, it's easy to add it in SBT: How to declare dependency on Play's Anorm for a standalone application? .