Je travaille sur un petit projet où j'aimerais analyser certaines données, puis la mettre dans une base de données. Je ne travaille pas avec l'ascenseur et je n'ai pas été capable de trouver une façon standard de le faire. p>
Je vais bien écrire les requêtes moi-même, mais je ne sais pas quoi utiliser pour se connecter à la DB. P>
6 Réponses :
Vous pouvez utiliser JDBC - Les moyens standard d'obtenir Java de parler à Bases de données. Vous aurez besoin du pilote MySQL JDBC . Apache Dbutils fournit des classes utilitaires entourant JDBC et serait utile. P>
Si vous voulez une API de niveau supérieur qui prend une partie de la chaudière, puis consultez Intégration JDBC de Spring's . p>
Si vous voulez un orm (mappage d'objet-relation), alors Hibernate est un bon choix. < / p>
J'ai utilisé les trois à Scala avec succès. P>
J'ai réellement écrit un Shell de commandes SQL , à Scala, qui parle à tout arbitraire Base de données pour laquelle un pilote JDBC existe. Comme Brian Agnew note, cela fonctionne parfaitement. De plus, il existe des outils tels que Queruleux , SQUERYL et ou / courtier qui fournit Scala Couches de base de données d'amitié. Ils s'assoient au-dessus de JDBC, mais ils fournissent une sémantique supplémentaire (via DSLS, dans certains cas) pour vous faciliter la tâche. P>
Pour la complétude, consultez également Richsql . C'est le code de démonstration montrant comment envelopper JDBC pour faire plus d'opérations de type SCALA, mais c'est en fait assez utilisable. Il présente l'avantage d'être simple et petit, afin que vous puissiez facilement étudier la source pour voir ce qui se passe. N'oubliez pas de fermer () vos départis. P>
Essayez Courtier O / R :
case class MyObj(name: String, year: Int)
val ds = new com.mysql.jdbc.jdbc2.optional.MysqlDataSource
// set properties on ds
import org.orbroker._
val builder = new BrokerBuilder(ds)
val broker = builder.build
val myObj: MyObj = // Parse stuff to create MyObj instance
broker.transaction() { session =>
session.execute("INSERT INTO MYTABLE VALUES(:obj.name, :obj.year)", "obj"->myObj)s
}
val myObjs: Seq[MyObj] = // Parse stuff to create sequence of MyObj instances
broker.transaction() { session =>
session.executeBatch("INSERT INTO MYTABLE VALUES(:obj.name, :obj.year)", "obj"->myObjs)
}
Cours d'arrêt Vous pouvez utiliser toutes les versions Java compatibles avec JDBC (Hibernate, Spring, etc.), mais pour une meilleure utilisation de la langue Scala, je vous recommande d'utiliser un cadre spécifique Scala, qui possède une meilleure DSL. P>
Déconnectez plus sur ces cadres chez https: // Stackoverflow. Com / Questions / 1362748 / Recherche-à-la-Chapelle-comparaison-de-Scala-Persistance-cadres p>
Considérez également SCODIKIJDBC , très similaire à celui indiqué ci-dessus. En outre, Jouez-le, Scalaanorm < / a> est similaire. J'ai créé une réponse complète sur SCIPIKIJDBC.
Je viens de découvrir SCALKIJDBC qui offre une wrapper Scala comme API comme API pour JDBC .
(J'ai trouvé SCIDEDIJDBC lors de la recherche Comment utiliser scalaanorm a > sans jeu de jeu . Maintenant on dirait que je n'aurai pas besoin d'avoir besoin de ANORTINAL POUR MON PROJET.) P>
Voici un exemple simple, même s'il offre de nombreuses fonctionnalités intéressantes non présentées ici: P>
import scalikejdbc._
Class.forName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource")
ConnectionPool.singleton("jdbc:mysql://localhost:3306/myschema", "user", "password")
DB.localTx { implicit conn =>
val data = sql"select mystringcol, myintcolumn from mytable".map {
rs => (rs.string("mystringcol"), rs.int("myintcolumn"))
}.list().apply()
println(data)
}
Cette question a beaucoup de bonnes informations: Stackoverflow.com/Questtions/1362748/...