2
0

More than 5 years have passed since last update.

Slickなるものを使ってみよう(mysql)

Posted at

こんにちは世界とロギング関連が終わったら次はDB回り。
いつSparkに手ェつけんだって話だけども、Sparkに渡したいデータ元がDBだからしょうがないんだよと言い訳しとこう。

■build.sbt
基本的に前回記事とかに追記してるものと思いねぇ。

"com.typesafe.slick" %% "slick" % "3.1.0-M2",
"com.typesafe.slick" %% "slick-codegen" % "3.1.0-M2",
"mysql" % "mysql-connector-java" % "5.1.34",

codegenはテーブル構成からmodelクラスにあたるものを作ってくれるのかね。
今回使わないけど今後の要件でなんか使いそうな気はするから入れておこう。
後で消すかもだけど

■scala
参考:http://www.mwsoft.jp/programming/scala/slick3_1.html

import slick.driver.MySQLDriver.api._
import scala.concurrent.Future
import scala.concurrent.Await
import scala.concurrent.duration.Duration

まずimportにこいつら追加。concurrentはとりあえず非同期処理やスレッド回りに関連する連中って理解。詳しくは後々もっとちゃんと追う。今回はとにかく動かす。

    val db = Database.forURL("jdbc:mysql://localhost/scaladevdb", driver="com.mysql.jdbc.Driver", user="scala", password="scala")
    val query = sql"SELECT id, name FROM test".as[(Int, String)]
    val f:Future[Vector[(Int, String)]] = db.run(query)
    Await.result(f, Duration.Inf) foreach println

※mysqlそのものの設定やらは準備は既に出来ている前提です

とりあえずこれでDBアクセスと結果吐き出しは出来た。

・Future、Await,Durationとはなんぞや
・Vector型ってなんぞや
・scalaのシンタックス(Await.resultの行)がまだぜんぜんわからん

課題やまづみ

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0