新しい言語触り始めた後にアプリつくろうと思うと、大体DB周り気になる。
ということでScalaからMySQLを触ってみたときのメモ。
今回はscalaqueryを使いました。
https://github.com/szeiger/scala-query
一応scala-dbcというのがscalaの標準ライブラリに入っているようなのですが、scala2.9.1でこいつを使うと、deprecatedのwarningに苛まれる事になります。
とりあえず2.9.1では使わないこと推奨?のようなので、Mavenでサクっとscalaquery入れた環境作りましょう。
使用するプロジェクトはmvn archetype:generateで適当にscalaのプロジェクトとして作成。
Mavenでscalaquery使うときは、
<dependencies> <dependency> <groupId>org.scalaquery</groupId> <artifactId>scalaquery_2.8.1</artifactId> <version>0.9.5</version> </dependency> </dependencies> <repositories> <repository> <id>ScalaToolsMaven2Repository</id> <name>Scala-Tools Maven2 Repository</name> <url>http://scala-tools.org/repo-releases</url> </repository> </repositories>
をpom.xmlに追加しておいてください。
あと、mysqlのドライバもdependenciesの中に追記!
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency>
そんでもってプロジェクトのフォルダで
mvn scala:console
を走らせると、必要なライブラリが入った状態のscalaコンソールが立ち上がります。
あとはこんな感じでmysqlと接続。
scala> import org.scalaquery.session.Database import org.scalaquery.session.Database scala> import org.scalaquery.session.Database.threadLocalSession import org.scalaquery.session.Database.threadLocalSession scala> import org.scalaquery.simple.StaticQuery._ import org.scalaquery.simple.StaticQuery._ scala> val db = Database.forURL("jdbc:mysql://localhost/test",driver="com.mysql.jdbc.Driver",user="hoge",password="hoge") db: org.scalaquery.session.Database = org.scalaquery.session.Database$$anon$2@3c10098b scala> val select = queryNA[(Int,String)]("select id,name from user") select: org.scalaquery.simple.StaticQuery[Unit,(Int, String)] with org.scalaquery.UnitInvokerMixin[(Int, String)] = org.scalaquery.simple.StaticQuery$$anon$1@7cc3feb6 scala> db withSession{select.list} res0: List[(Int, String)] = List((1,y_matsuwitter))
scalaqueryの詳しい使い方はまた調べて書きます。
では。
参考
http://scalaquery.org/download.html
http://d.hatena.ne.jp/tototoshi/20111119/1321677419