无法使用 JDBC 连接数据库

Not able connect database using JDBC

我正在尝试使用 spark sql.

通过 JDBC 连接我在 databricks notebook 中的 SQL 服务器
val jdbcHostname = "database.windows.net"
val jdbcPort = 1433
val jdbcDatabase = "Database1"

// Create the JDBC URL without passing in the user and password parameters.
val jdbcUrl = s"jdbc:sqlserver://${jdbcHostname}:${jdbcPort};database=${jdbcDatabase}"

// Create a Properties() object to hold the parameters.
import java.util.Properties
val connectionProperties = new Properties()

connectionProperties.put("user", s"${User1}");
connectionProperties.put("password", s"${abc$@123}");

但是属性中出现错误,

error: ';' expected but '@' found. connectionProperties.put("password", s"${dcu$@123}");

我找不到问题所在,如果您知道,可以提供帮助。

s"${xxx}" 语法用于引用变量或表达式中的值,但在您的情况下它看起来像原始密码,并且在 Scala 中变量名称可能不包含特殊字符,例如在您的表达式:abc$@123。解决方案是从字符串的开头删除 s...

P.S。更好更安全的解决方案是将密码放入 Databricks secret scope 并使用 dbutils.secrets.get.

获取它