The doobie
module adds support for reading and writing CronExpr
to a database via JDBC. Since JDBC is a JVM-only concept this module can not be used with non-JVM targets. To use it, add the corresponding dependency to your project in SBT:
libraryDependencies ++= Seq(
"com.github.alonsodomin.cron4s" %% "cron4s-doobie" % "0.6.1",
"org.tpolecat" %% "doobie-core" % "0.9.0"
)
And now you will need some imports:
import cron4s.CronExpr
import cron4s.doobie._
import doobie._
import doobie.implicits._
Now define a case class that represents your database data (and which should contain a cron expression):
case class MeetingId(value: Long)
case class RecurringMeeting(subject: String, description: String, frequency: CronExpr)
With this, you now are capable of writing read and write queries for that given data structure:
def loadAllMeetings = {
sql"select subject, description, frequency from meetings"
.query[RecurringMeeting]
.to[List]
}
def updateMeetingFrequency(meetingId: MeetingId, freq: CronExpr) = {
sql"update meetings set frequency = $freq where meetingId = ${meetingId.value}"
.update
.run
}
For more information, go to Doobie’s User Guide.