Ich arbeite an einem kleinen Projekt, bei dem ich Daten analysieren und in eine Datenbank schreiben möchte. Ich arbeite nicht mit Lift, und ich war nicht in der Lage, eine Standardmethode dafür zu finden.
Mir geht es gut, die Abfragen selbst zu schreiben, aber ich bin mir nicht sicher, was ich verwenden soll, um tatsächlich eine Verbindung zur DB herzustellen.
Sie können JDBC verwenden - das Standardverfahren, mit dem Java dazu gebracht wird, mit Datenbanken zu kommunizieren. Sie benötigen den entsprechenden MySQL JDBC -Treiber. Apache DbUtils stellt einige Hilfsklassen für JDBC zur Verfügung und wäre nützlich.
Wenn Sie eine API auf höherer Ebene haben möchten, die einen Teil des Boilerplate herausnimmt, dann schauen Sie sich Die JDBC-Integration von Spring .
Wenn Sie ein ORM (objektrelationales Mapping) wünschen, ist Hibernate eine gute Wahl.
Ich habe alle drei in Scala mit Erfolg benutzt.
Ich habe tatsächlich eine SQL-Befehlsshell in Scala geschrieben, die mit jeder beliebigen Datenbank kommuniziert, für die ein JDBC-Treiber verwendet wird existiert. Wie Brian Agnew bemerkt, funktioniert es perfekt. Darüber hinaus gibt es Tools wie Querulous , SQueryL und OR / Broker , die Scala-freundliche Datenbanklayer bereitstellen. Sie sitzen oben auf JDBC, aber sie bieten einige zusätzliche Semantik (in einigen Fällen über DSLs), um die Dinge für Sie einfacher zu machen.
Weitere Informationen zu diesen Frameworks finden Sie unter Ссылка
Der Vollständigkeit halber sollten Sie auch RichSQL ausprobieren. Es ist ein Demo-Code, der zeigt, wie man JDBC umwandelt, um mehr Scala-ähnliche Operationen auszuführen, aber es ist tatsächlich ziemlich brauchbar. Es hat den Vorteil, einfach und klein zu sein, so dass Sie die Quelle einfach studieren können, um zu sehen, was vor sich geht. Vergessen Sie nicht, Ihre PreparedStatements zu schließen ().
Ich habe gerade ScalikeJDBC entdeckt, das einen Scala-ähnlichen API-Wrapper für JDBC anbietet .
(Ich habe ScalikeJDBC gefunden, als ich untersucht habe, wie man benutzt ScalaAnorm ohne Play Framework Nun sieht es so aus, als würde ich Anorm nicht brauchen für mein Projekt.)
Hier ist ein einfaches Beispiel, obwohl es viele interessante Funktionen bietet, die hier nicht gezeigt werden:
%Vor%Einige Dokumentationslinks: