Je teste le code ci-dessous, une section de base de données de base. Cela fonctionne bien lorsque je l'exécute à partir de la CLI en utilisant "scala dbtest.scala", mais me donne des erreurs compilées lorsque j'essaie de le compiler avec SCALAC:
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
}
3 Réponses :
Vous avez besoin d'une classe, d'un objet ou d'un trait au niveau supérieur pour en faire une source légale de compiler. SCALA CODE> L'INTERPRÈTE s'attend à des définitions et expressions, alors que scalac code> s'attend à ce qui peut se transformer en fichiers Java .Class CODE>. P>
Ok, mais il est légal d'exécuter le code comme je l'ai comme un script via la ligne de commande Scala? Ça marche de la CLI
Oui, en tant que script, SCALA ne nécessite pas de conteneur de niveau supérieur.
En outre, rappel de scala -help code>: Toutes les options de scalac (voir Scalac -Help) sont également autorisées. Code> Alors, allez-y et exécutez-le avec quelque chose comme Scala -optimiser dbbest.scala code>
//imports here
object DbTest {
def main(args: Array[String]) {
// your code here
}
}
Créer un fichier appelé helloworld.scala et entrez les éléments suivants:
scala HelloWorld.scala