Exercise 14 - Scala - Externalize parameters for Scala JDBC Program

typesafe
configuration
jdbc
scala
#1

Problem:

Externalize all 5 parameters, Database Host, port, database name, user name and password

  • Use typesafe config package - libraryDependencies += "com.typesafe" % "config" % "1.3.0"

  • Use it to externalize parameters

  • Steps involved

  • Update build.sbt

  • import the package import com.typesafe.config._

  • Create application.properties under src/main/resources

  • Use ConfigFactory.load to create config object

  • Use config.get methods to get the properties

Please provide the following details

  • Contents of build.sbt
  • .classpath line for typesafe config dependencies
  • Code snippet from the program which will read externalized properties
0 Likes

#2

build.sbt

name := "hw"
version := "1.0"
scalaVersion := “2.11.8”

libraryDependencies += “mysql” % “mysql-connector-java” % “5.1.24”

libraryDependencies += “com.typesafe” % “config” % “1.3.0”

classpath

<classpath>
  <classpathentry kind="src" path="src\main\scala"/>
  <classpathentry kind="src" path="src\main\resources"/>
  <classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\mysql\mysql-connector-java\jars\mysql-connector-java-5.1.24.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.spark\spark-core_2.11\jars\spark-core_2.11-1.6.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.avro\avro-mapred\jars\avro-mapred-1.7.7-hadoop2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.avro\avro-ipc\jars\avro-ipc-1.7.7-tests.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.avro\avro-ipc\jars\avro-ipc-1.7.7.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.avro\avro\jars\avro-1.7.7.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.codehaus.jackson\jackson-core-asl\jars\jackson-core-asl-1.9.13.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.codehaus.jackson\jackson-mapper-asl\jars\jackson-mapper-asl-1.9.13.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.xerial.snappy\snappy-java\bundles\snappy-java-1.1.2.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.commons\commons-compress\jars\commons-compress-1.4.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.tukaani\xz\jars\xz-1.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.slf4j\slf4j-api\jars\slf4j-api-1.7.10.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.twitter\chill_2.11\jars\chill_2.11-0.5.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.twitter\chill-java\jars\chill-java-0.5.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.esotericsoftware.kryo\kryo\bundles\kryo-2.21.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.esotericsoftware.reflectasm\reflectasm\jars\reflectasm-1.07-shaded.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.esotericsoftware.minlog\minlog\jars\minlog-1.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.objenesis\objenesis\jars\objenesis-1.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.xbean\xbean-asm5-shaded\bundles\xbean-asm5-shaded-4.4.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-client\jars\hadoop-client-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-common\jars\hadoop-common-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-annotations\jars\hadoop-annotations-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.google.code.findbugs\jsr305\jars\jsr305-1.3.9.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\commons-cli\commons-cli\jars\commons-cli-1.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.commons\commons-math\jars\commons-math-2.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\xmlenc\xmlenc\jars\xmlenc-0.52.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\commons-httpclient\commons-httpclient\jars\commons-httpclient-3.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\commons-codec\commons-codec\jars\commons-codec-1.4.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\commons-net\commons-net\jars\commons-net-2.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\log4j\log4j\bundles\log4j-1.2.17.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\commons-lang\commons-lang\jars\commons-lang-2.5.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\commons-configuration\commons-configuration\jars\commons-configuration-1.6.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\commons-collections\commons-collections\jars\commons-collections-3.2.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\commons-digester\commons-digester\jars\commons-digester-1.8.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\commons-beanutils\commons-beanutils\jars\commons-beanutils-1.7.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\commons-beanutils\commons-beanutils-core\jars\commons-beanutils-core-1.8.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.google.protobuf\protobuf-java\bundles\protobuf-java-2.5.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-auth\jars\hadoop-auth-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-hdfs\jars\hadoop-hdfs-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.mortbay.jetty\jetty-util\jars\jetty-util-6.1.26.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-mapreduce-client-app\jars\hadoop-mapreduce-client-app-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-mapreduce-client-common\jars\hadoop-mapreduce-client-common-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-yarn-common\jars\hadoop-yarn-common-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-yarn-api\jars\hadoop-yarn-api-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.slf4j\slf4j-log4j12\jars\slf4j-log4j12-1.7.10.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.google.inject\guice\jars\guice-3.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\javax.inject\javax.inject\jars\javax.inject-1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\aopalliance\aopalliance\jars\aopalliance-1.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.sonatype.sisu.inject\cglib\jars\cglib-2.2.1-v20090111.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.sun.jersey.jersey-test-framework\jersey-test-framework-grizzly2\jars\jersey-test-framework-grizzly2-1.9.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.sun.jersey\jersey-server\bundles\jersey-server-1.9.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\asm\asm\jars\asm-3.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.sun.jersey\jersey-json\bundles\jersey-json-1.9.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.codehaus.jettison\jettison\bundles\jettison-1.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\stax\stax-api\jars\stax-api-1.0.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.sun.xml.bind\jaxb-impl\jars\jaxb-impl-2.2.3-1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\javax.xml.bind\jaxb-api\jars\jaxb-api-2.2.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\javax.activation\activation\jars\activation-1.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.codehaus.jackson\jackson-jaxrs\jars\jackson-jaxrs-1.8.3.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.codehaus.jackson\jackson-xc\jars\jackson-xc-1.8.3.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.sun.jersey.contribs\jersey-guice\jars\jersey-guice-1.9.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-yarn-client\jars\hadoop-yarn-client-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-mapreduce-client-core\jars\hadoop-mapreduce-client-core-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-yarn-server-common\jars\hadoop-yarn-server-common-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-mapreduce-client-shuffle\jars\hadoop-mapreduce-client-shuffle-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.hadoop\hadoop-mapreduce-client-jobclient\jars\hadoop-mapreduce-client-jobclient-2.2.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.spark\spark-launcher_2.11\jars\spark-launcher_2.11-1.6.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.spark-project.spark\unused\jars\unused-1.0.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.spark\spark-network-common_2.11\jars\spark-network-common_2.11-1.6.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\io.netty\netty-all\jars\netty-all-4.0.29.Final.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.spark\spark-network-shuffle_2.11\jars\spark-network-shuffle_2.11-1.6.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.fusesource.leveldbjni\leveldbjni-all\bundles\leveldbjni-all-1.8.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.fasterxml.jackson.core\jackson-databind\bundles\jackson-databind-2.4.4.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.fasterxml.jackson.core\jackson-annotations\bundles\jackson-annotations-2.4.4.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.fasterxml.jackson.core\jackson-core\bundles\jackson-core-2.4.4.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.spark\spark-unsafe_2.11\jars\spark-unsafe_2.11-1.6.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\net.java.dev.jets3t\jets3t\jars\jets3t-0.7.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.curator\curator-recipes\bundles\curator-recipes-2.4.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.curator\curator-framework\bundles\curator-framework-2.4.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.curator\curator-client\bundles\curator-client-2.4.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.zookeeper\zookeeper\jars\zookeeper-3.4.5.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\jline\jline\jars\jline-0.9.94.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.google.guava\guava\bundles\guava-14.0.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.eclipse.jetty.orbit\javax.servlet\orbits\javax.servlet-3.0.0.v201112011016.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.commons\commons-lang3\jars\commons-lang3-3.3.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.commons\commons-math3\jars\commons-math3-3.4.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.slf4j\jul-to-slf4j\jars\jul-to-slf4j-1.7.10.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.slf4j\jcl-over-slf4j\jars\jcl-over-slf4j-1.7.10.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.ning\compress-lzf\bundles\compress-lzf-1.0.3.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\net.jpountz.lz4\lz4\jars\lz4-1.3.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.roaringbitmap\RoaringBitmap\bundles\RoaringBitmap-0.5.11.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.typesafe.akka\akka-remote_2.11\jars\akka-remote_2.11-2.3.11.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.typesafe.akka\akka-actor_2.11\jars\akka-actor_2.11-2.3.11.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.typesafe\config\bundles\config-1.2.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\io.netty\netty\bundles\netty-3.8.0.Final.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.uncommons.maths\uncommons-maths\jars\uncommons-maths-1.2.2a.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.typesafe.akka\akka-slf4j_2.11\jars\akka-slf4j_2.11-2.3.11.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.json4s\json4s-jackson_2.11\jars\json4s-jackson_2.11-3.2.10.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.json4s\json4s-core_2.11\jars\json4s-core_2.11-3.2.10.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.json4s\json4s-ast_2.11\jars\json4s-ast_2.11-3.2.10.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.thoughtworks.paranamer\paranamer\jars\paranamer-2.6.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.scala-lang\scalap\jars\scalap-2.12.1.jar"/>
  <classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_COMPILER_CONTAINER"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.scala-lang.modules\scala-xml_2.12\bundles\scala-xml_2.12-1.0.6.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.sun.jersey\jersey-core\bundles\jersey-core-1.9.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.mesos\mesos\jars\mesos-0.21.1-shaded-protobuf.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.clearspring.analytics\stream\jars\stream-2.7.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\io.dropwizard.metrics\metrics-core\bundles\metrics-core-3.1.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\io.dropwizard.metrics\metrics-jvm\bundles\metrics-jvm-3.1.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\io.dropwizard.metrics\metrics-json\bundles\metrics-json-3.1.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\io.dropwizard.metrics\metrics-graphite\bundles\metrics-graphite-3.1.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\com.fasterxml.jackson.module\jackson-module-scala_2.11\bundles\jackson-module-scala_2.11-2.4.4.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.apache.ivy\ivy\jars\ivy-2.4.0.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\oro\oro\jars\oro-2.0.8.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.tachyonproject\tachyon-client\jars\tachyon-client-0.8.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\commons-io\commons-io\jars\commons-io-2.4.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.tachyonproject\tachyon-underfs-hdfs\jars\tachyon-underfs-hdfs-0.8.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.tachyonproject\tachyon-underfs-s3\jars\tachyon-underfs-s3-0.8.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\org.tachyonproject\tachyon-underfs-local\jars\tachyon-underfs-local-0.8.2.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\net.razorvine\pyrolite\jars\pyrolite-4.9.jar"/>
  <classpathentry kind="lib" path="C:\Users\nagella.shyam\.ivy2\cache\net.sf.py4j\py4j\jars\py4j-0.9.jar"/>
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
  <classpathentry kind="output" path="bin"/>
</classpath>

CodeSnippet:
val configProp = ConfigFactory.load();
val driver = configProp.getString(“driver”)
val url = “jdbc:mysql://”+configProp.getString(“url”)+"/retail_db"
val username = configProp.getString(“username”)
val password = configProp.getString(“password”)

0 Likes

#3

Contents of build.sbt

name := "ScalaJdbcConnectSelect"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(“mysql” % “mysql-connector-java” % “5.1.24”,
“org.apache.spark” % “spark-core_2.11” % “1.6.2”,
“com.typesafe” % “config” % “1.3.1”
)

---------------------------------------------------------------------

 <classpathentry kind="lib" path="C:\Users\parul\.ivy2\cache\com.typesafe.akka\akka-remote_2.11\jars\akka-remote_2.11-2.3.11.jar"/>
  <classpathentry kind="lib" path="C:\Users\parul\.ivy2\cache\com.typesafe.akka\akka-actor_2.11\jars\akka-actor_2.11-2.3.11.jar"/>
  <classpathentry kind="lib" path="C:\Users\parul\.ivy2\cache\com.typesafe\config\bundles\config-1.3.1.jar"/>
  <classpathentry kind="lib" path="C:\Users\parul\.ivy2\cache\io.netty\netty\bundles\netty-3.8.0.Final.jar"/>
  <classpathentry kind="lib" path="C:\Users\parul\.ivy2\cache\org.uncommons.maths\uncommons-maths\jars\uncommons-maths-1.2.2a.jar"/>
  <classpathentry kind="lib" path="C:\Users\parul\.ivy2\cache\com.typesafe.akka\akka-slf4j_2.11\jars\akka-slf4j_2.11-2.3.11.jar"/>

val conf= ConfigFactory.load();
val driver = conf.getString(“driver”)
val url = s"jdbc:mysql://"+conf.getString(“databaseHost”)+"/"+conf.getString(“databaseName”)
val username = conf.getString(“username”)
val password = conf.getString(“password”)

0 Likes

#4

#Contents of build.sbt

name := "ScalaJdbcTypesafe"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(“mysql” % “mysql-connector-java” % “5.1.24”,
“org.apache.spark” % “spark-core_2.11” % “1.6.2”,
“com.typesafe” % “config” % “1.3.1”
)


#.classpath

<classpathentry kind="lib" path="C:\Users\snehasish.dutta\.ivy2\cache\com.typesafe\config\bundles\config-1.3.1.jar"/>


#application.properties

driver = com.mysql.jdbc.Driver

sourcePort = 3306
databaseHost = nn01.itversity.com
databaseName=retail_db
userName=retail_dba
password=itversity

#code

var config = ConfigFactory.load()

val url = s"jdbc:mysql://"+config.getString("databaseHost")+"/"+config.getString("databaseName")
val username = config.getString("userName")
val password = config.getString("password")
try {
  Class.forName(config.getString("driver"))
0 Likes

#5

#Contents of build.sbt

name := "Scala & Spark Training"

version := "1.0"

scalaVersion := "2.10.4"

libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.24"

libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.6.2"

libraryDependencies += "com.typesafe" % "config" % "1.3.0"

#.classpath line for typesafe config dependencies

<classpathentry sourcepath="C:\Users\farhan.misarwala\.ivy2\cache\com.typesafe\config\srcs\config-1.3.0-sources.jar" kind="lib" path="C:\Users\farhan.misarwala\.ivy2\cache\com.typesafe\config\bundles\config-1.3.0.jar">
    <attributes>
      <attribute name="javadoc_location" value="jar:file:C:\Users\farhan.misarwala\.ivy2\cache\com.typesafe\config\docs\config-1.3.0-javadoc.jar!/"/>
    </attributes>
  </classpathentry>

#Code snippet from the program which will read externalized properties

val config = ConfigFactory.load()
val url = "jdbc:mysql://" +
  config.getString("sourceHost") +
  ":" + config.getString("sourcePort") +
  "/" + config.getString("sourceDatabase")

val username = config.getString("sourceUsername")
val password = config.getString("sourcePassword")
0 Likes

#6

Contents of build.sbt

name := "ScalaJDBCMysqlExt"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.24"
libraryDependencies += "com.typesafe" % "config" % "1.3.0"

.classpath line for typesafe config dependencies

<classpath>
  <classpathentry kind="src" path="src\main\scala"/>
  <classpathentry kind="src" path="src\main\resources"/>
  <classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/>
  <classpathentry kind="lib" path="C:\Users\Itsme\.ivy2\cache\mysql\mysql-connector-java\jars\mysql-connector-java-5.1.24.jar"/>
  <classpathentry kind="lib" path="C:\Users\Itsme\.ivy2\cache\com.typesafe\config\bundles\config-1.3.0.jar"/>
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
  <classpathentry kind="output" path="bin"/>
</classpath>

Code snippet from the program which will read externalized properties

driver = com.mysql.jdbc.Driver
sourcePort = 3306
databaseHost = nn01.itversity.com
databaseConnectionType =jdbc:mysql://
databaseName=retail_db
userName=retail_dba
password=itversity


    val config = ConfigFactory.load()
    val driver = config.getString("driver")
    val url = config.getString("databaseConnectionType")+config.getString("databaseHost")+"/"+config.getString("databaseName")
    val userName = config.getString("userName")
    val password = config.getString("password")
0 Likes

#7

application.property File ::

driver = com.mysql.jdbc.Driver
sourcePort = 3306
databaseHost = nn01.itversity.com
databaseConnectionType =jdbc:mysql://
databaseName=retail_db
userName=retail_dba
password=itversity

Code snapshot For Externalize parameter ::

Class.forName(conf.getString(“driver”))
val connection: Connection = DriverManager.getConnection(
conf.getString(“databaseConnectionType”)+conf.getString(“databaseHost”)+":"+conf.getString(“sourcePort”)+"/"+conf.getString(“databaseName”),
conf.getString(“userName”),
conf.getString(“password”))

0 Likes