Estoy probando el código siguiente, hace una consulta de base de datos básica. Funciona bien cuando lo ejecuto desde la CLI usando "Scala dbtest.scala", pero me da errores de compilación cuando intento compilar con scalac:El programa funciona cuando se ejecuta con scala, obtiene errores de compilación cuando intenta compilarlo con 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
}
bien, pero es legal para ejecutar el código como lo tengo como un guión a través Scala línea de comandos? Funciona desde la CLI –
Sí, como una secuencia de comandos, Scala no requiere un contenedor de nivel superior. –
Además, un recordatorio de '' 'scala -help''':' '' Todas las opciones para scalac (ver scalac -help) también están permitidas .'' Entonces, adelante, ejecútelo con algo como '' 'scala - optimizar dbtest.scala''' – opyate