私は以下のコードをテストしていますが、基本的なデータベースクエリです。それは私が「スカラ座dbtest.scala」を使用してCLIからそれを実行すると正常に動作しますが、私はscalacでそれをコンパイルしようとすると、私はコンパイルエラーを与える:スカラで実行するとプログラムが動作し、scalacでコンパイルしようとするとコンパイルエラーが発生する
[[email protected] pybackup]$ scalac dbtest.scala dbtest.scala:5: error: expected class or object definition val conn_str = "jdbc:mysql://localhost:3306/svn?user=svn&password=svn" ^ dbtest.scala:8: error: expected class or object definition classOf[com.mysql.jdbc.Driver] ^ dbtest.scala:11: error: expected class or object definition val conn = DriverManager.getConnection(conn_str) ^ dbtest.scala:12: error: expected class or object definition try { ^ 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
}
OK、それは、私は、コマンドラインのScalaによるスクリプトのようにそれを持っているように、コードを実行するために、法的ですか?それはCLIから機能します –
はい、スクリプトとして、スカラはトップレベルコンテナを必要としません。 –
また、 '' scala -help'''からのリマインダー: '' 'scalacのすべてのオプション(scalac -help参照)も許されています。' ''だから、 '' 'scala - 最適化dbtest.scala''' – opyate