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