gpt4 book ai didi

scala - 程序在使用 scala 运行时可以正常工作,但在尝试使用 scalac 编译时出现编译错误

转载 作者:行者123 更新时间:2023-12-03 04:57:34 32 4
gpt4 key购买 nike

我正在测试下面的代码,执行基本的数据库查询。当我使用“scala dbtest.scala”从 CLI 运行它时,它工作正常,但当我尝试使用 scalac 编译它时,它会出现编译错误:

[sean@ibmp2 pybackup]$ scalac dbtest.scaladbtest.scala:5: error: expected class or object definitionval conn_str = "jdbc:mysql://localhost:3306/svn?user=svn&password=svn"^dbtest.scala:8: error: expected class or object definitionclassOf[com.mysql.jdbc.Driver]^dbtest.scala:11: error: expected class or object definitionval conn = DriverManager.getConnection(conn_str)^dbtest.scala:12: error: expected class or object definitiontry {^four errors found

import java.sql.{Connection, DriverManager, ResultSet};
import java.util.Date

// Change to Your Database Config
val conn_str = "jdbc:mysql://localhost:3306/svn?user=xx&password=xx"

// Load the driver
classOf[com.mysql.jdbc.Driver]

// Setup the connection
val conn = DriverManager.getConnection(conn_str)
try {
// Configure to be Read Only
val statement = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)

// Execute Query
val rs = statement.executeQuery("SELECT * FROM backup")

// Iterate Over ResultSet
var svnFiles = Set[String]()
while (rs.next) {
val repos = rs.getString("repos")
val lm = rs.getDate("lastModified")
val lb = rs.getDate("lastBackedup")
if (lm.getTime() > lb.getTime()) {
println(repos + " needs backing up")
svnFiles += repos
}
else {
println(repos + " doesn't need backing up")
}
}
println(svnFiles)
}
finally {
conn.close
}

最佳答案

您需要顶层的类、对象或特征才能使其成为合法的编译源。 scala 解释器需要定义和表达式,而 scalac 需要可以转换为 Java .class 文件的内容。

关于scala - 程序在使用 scala 运行时可以正常工作,但在尝试使用 scalac 编译时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4651730/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com