Skip to content

Instantly share code, notes, and snippets.

@D4v1X
Created July 2, 2018 20:45
Show Gist options
  • Save D4v1X/19a427d7c479c26b947c9549bf78c439 to your computer and use it in GitHub Desktop.
Save D4v1X/19a427d7c479c26b947c9549bf78c439 to your computer and use it in GitHub Desktop.
DBUtils Scala
package utils
import java.sql.Connection
import com.google.inject.Inject
import org.jooq.impl.DSL
import org.jooq.{DSLContext, SQLDialect}
import play.api.db.Database
import scala.concurrent.Future
class DBUtils @Inject()(db: Database)(implicit dbExec: DatabaseExecutionContext) {
def withConnection[A](block: DSLContext => A): Future[A] = Future {
db withConnection { connection: Connection =>
val dSLContext: DSLContext = DSL.using(connection, SQLDialect.POSTGRES)
block apply dSLContext
}
}
def withTransaction[A](block: DSLContext => A): Future[A] = Future {
db withTransaction { connection: Connection =>
val dSLContext: DSLContext = DSL.using(connection, SQLDialect.POSTGRES)
block apply dSLContext
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment