Scala / IntelliJ:提示输入数据库密码

时间:2018-10-31 07:46:32

标签: scala apache-spark intellij-idea

我正在使用azure-sqldb库用于Spark连接到Azure数据库。

在GitHub示例中,他们在代码中定义了登录凭据。我是Scala的新手,我习惯了R Studio,在那里我可以让GUI提示我输入密码,例如:

password <- rstudioapi::askForPassword("Please enter your password")

在Scala和IntelliJ中实现相似功能的最佳方法是什么? 目标是使登录凭据远离代码,并且最好每个会话仅输入一次(而不是每次运行代码时)。

当前代码:

object dev extends SparkSessionWrapper {

  def main(args: Array[String]): Unit = {
    println(data.head())
    spark.stop()
  }

  val statsDB = Config(Map(
    "url" -> "my.database.url",
    "databaseName" -> "myDB",
    "dbTable" -> "myTable",
    "user" -> "myLogin",
    "password" -> "myPWD",
    "connectTimeout" -> "600",
    "queryTimeout" -> "12000"
  ))

  val data: DataFrame = spark.read.sqlDB(statsDB)
}

1 个答案:

答案 0 :(得分:0)

您可以在Scala中使用Java库。我尝试了JOptionPane。像这儿: JOptionPane to get password 它在javax.swing库下,该库是任何标准Java SE安装的一部分,因此无需添加依赖项。您只需要scala-swing依赖项:

libraryDependencies += "org.scala-lang" % "scala-swing" % scalaVersion.value