Как я могу соединиться с базой данных MySQL с помощью Scala?

Я работаю над небольшим проектом, где я хотел бы проанализировать некоторые данные и затем поместить их в базу данных. Я не работаю с Лифтом, и я не смог найти стандартный способ сделать это.

Все хорошо при записи запросов самостоятельно, но я не уверен, что использовать для фактического соединения с DB.

8
задан Dan G 19 June 2010 в 20:08
поделиться

4 ответа

Вы можете использовать JDBC - стандартный способ заставить Java взаимодействовать с базами данных. Вам понадобится соответствующий драйвер MySQL JDBC . Apache DbUtils предоставляет некоторые служебные классы, окружающие JDBC, и будет полезно.

Если вам нужен API более высокого уровня, который устраняет часть шаблонов, тогда ознакомьтесь с интеграцией Spring JDBC .

Если вам нужна ORM (объектно-реляционное сопоставление), тогда Hibernate - хороший выбор.

Я успешно использовал все три в Scala.

11
ответ дан 5 December 2019 в 06:09
поделиться

Я фактически написал командную оболочку SQL на Scala, которая взаимодействует с любой произвольной базой данных, для которой существует драйвер JDBC. Как отмечает Брайан Агнью, он работает отлично. Кроме того, существуют такие инструменты, как Querulous , SQueryL и OR / Broker , которые обеспечивают удобные для Scala уровни базы данных. Они находятся поверх JDBC, но предоставляют некоторую дополнительную семантику (в некоторых случаях через DSL), чтобы упростить вам задачу.

5
ответ дан 5 December 2019 в 06:09
поделиться

Для полноты также ознакомьтесь с RichSQL . Это демонстрационный код, показывающий, как обернуть JDBC, чтобы выполнять больше операций, подобных Scala, но на самом деле он вполне пригоден для использования. Его преимущество в том, что он простой и небольшой, поэтому вы можете легко изучить источник, чтобы увидеть, что происходит. Не забудьте закрыть () свои PreparedStatements.

2
ответ дан 5 December 2019 в 06:09
поделиться

Попробуйте O / R Broker :

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)
}
3
ответ дан 5 December 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: