From f5a5611c08057dbd8b7a5d473d53079636d27ff4 Mon Sep 17 00:00:00 2001 From: Satendra kumar Date: Sun, 16 Aug 2015 18:44:59 +0530 Subject: [PATCH] Added hikariCP library --- build.sbt | 1 + src/main/scala/com/knol/db/Demo.scala | 26 +++++++++++++++++++ .../knol/db/connection/MySqlDBComponent.scala | 2 +- .../com/knol/db/repo/BankInfoRepository.scala | 3 +++ .../knol/db/repo/BankProductRepository.scala | 3 +++ .../knol/db/connection/H2DBComponent.scala | 2 +- 6 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 src/main/scala/com/knol/db/Demo.scala diff --git a/build.sbt b/build.sbt index c096672..4ce48be 100644 --- a/build.sbt +++ b/build.sbt @@ -8,6 +8,7 @@ scalaVersion := "2.11.7" libraryDependencies ++= Seq( "mysql" % "mysql-connector-java" % "5.1.36", "ch.qos.logback" % "logback-classic" % "1.1.3", + "com.zaxxer" % "HikariCP-java6" % "2.3.9", "com.typesafe.slick" %% "slick" % "3.0.1", "org.scalatest" %% "scalatest" % "2.2.5" % "test", "com.h2database" % "h2" % "1.4.187" % "test" diff --git a/src/main/scala/com/knol/db/Demo.scala b/src/main/scala/com/knol/db/Demo.scala new file mode 100644 index 0000000..7a72925 --- /dev/null +++ b/src/main/scala/com/knol/db/Demo.scala @@ -0,0 +1,26 @@ +package com.knol.db + +import com.knol.db.repo._ +import scala.util._ +import scala.concurrent.ExecutionContext.Implicits.global + +object Demo extends App { + + val bankId = BankRepository.create(Bank("ICICI bank")) + + bankId.onComplete { + case Success(id) => + + BankProductRepository.create(BankProduct("car loan", id)) + BankInfoRepository.create(BankInfo("Goverment", 1000, id)) + BankRepository.create(Bank("SBI Bank")) + case _ => println("Error ...........") + } + + BankInfoRepository.getAllBankWithInfo().foreach(println) + + BankProductRepository.getAllBankWithProduct().foreach(println) + + Thread.sleep(10 * 1000) + +} \ No newline at end of file diff --git a/src/main/scala/com/knol/db/connection/MySqlDBComponent.scala b/src/main/scala/com/knol/db/connection/MySqlDBComponent.scala index a013c4e..ebe1408 100644 --- a/src/main/scala/com/knol/db/connection/MySqlDBComponent.scala +++ b/src/main/scala/com/knol/db/connection/MySqlDBComponent.scala @@ -16,6 +16,6 @@ private[connection] object MySqlDB { import slick.driver.MySQLDriver.api._ - val connectionPool = Database.forConfig("dbconf") + val connectionPool = Database.forConfig("mysql") } diff --git a/src/main/scala/com/knol/db/repo/BankInfoRepository.scala b/src/main/scala/com/knol/db/repo/BankInfoRepository.scala index 17499b3..0409f80 100644 --- a/src/main/scala/com/knol/db/repo/BankInfoRepository.scala +++ b/src/main/scala/com/knol/db/repo/BankInfoRepository.scala @@ -2,6 +2,7 @@ package com.knol.db.repo import com.knol.db.connection.DBComponent import scala.concurrent.Future +import com.knol.db.connection.MySqlDBComponent trait BankInfoRepository extends BankInfoTable { this: DBComponent => @@ -57,4 +58,6 @@ private[repo] trait BankInfoTable extends BankTable { this: DBComponent => } +object BankInfoRepository extends BankInfoRepository with MySqlDBComponent + case class BankInfo(owner: String, branches: Int, bankId: Int, id: Option[Int] = None) diff --git a/src/main/scala/com/knol/db/repo/BankProductRepository.scala b/src/main/scala/com/knol/db/repo/BankProductRepository.scala index 5f252e9..050ce3b 100644 --- a/src/main/scala/com/knol/db/repo/BankProductRepository.scala +++ b/src/main/scala/com/knol/db/repo/BankProductRepository.scala @@ -2,6 +2,7 @@ package com.knol.db.repo import com.knol.db.connection.DBComponent import scala.concurrent.Future +import com.knol.db.connection.MySqlDBComponent trait BankProductRepository extends BankProductTable { this: DBComponent => @@ -57,4 +58,6 @@ private[repo] trait BankProductTable extends BankTable { this: DBComponent => } +object BankProductRepository extends BankProductRepository with MySqlDBComponent + case class BankProduct(name: String, bankId: Int, id: Option[Int] = None) diff --git a/src/test/scala/com/knol/db/connection/H2DBComponent.scala b/src/test/scala/com/knol/db/connection/H2DBComponent.scala index 967e30e..f0b3e2a 100644 --- a/src/test/scala/com/knol/db/connection/H2DBComponent.scala +++ b/src/test/scala/com/knol/db/connection/H2DBComponent.scala @@ -17,7 +17,7 @@ trait H2DBComponent extends DBComponent { val randomDB = "jdbc:h2:mem:test" + UUID.randomUUID().toString() + ";" - val h2Url = randomDB + "MODE=MySql;DATABASE_TO_UPPER=false;INIT=runscript from 'src/test/resources/schema.sql'\\;runscript from 'src/test/resources/schemadata.sql'" + val h2Url = randomDB + " MODE=MySql;DATABASE_TO_UPPER=false;INIT=runscript from 'src/test/resources/schema.sql'\\;runscript from 'src/test/resources/schemadata.sql'" val db: Database = { logger.info("Creating test connection ..................................")