タオル1枚あれば恐るに足らず♨︎

-peko’s Hatena Blog ⸜(* ॑꒳ ॑* )⸝ダァーッ!!-

Scala + play mysql接続 2.6.x系

ここ数年play frameworkもScalaも触ってなかった
個人的に思うところは文末所感でまとめ

Developing

昔はDB.withConnectionって記載でいけたのにnot found出て意味不明だと思い調べた
Play Scala Anorm Exampleを確認したらDBApiを利用するようになっている
2.6.1のドキュメント調べたらplay.api.db.DB無くなってるwうせやん(笑)
https://www.playframework.com/documentation/2.6.1/api/scala/index.html#play.api.db.DBApi

今後はなくなるって事なのか?2.4系使えって事なのか?
ちなみにDBはobjectだったので通常のクラスのようにnewでインスタンス生成しなくても
定義したオブジェクトのフィールドやメソッドを利用出来た

Play 2.6.x Examplesを利用しての接続方法(2017/10/05現在)

build.sbt
libraryDependencies += jdbc
libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.44"
application.conf
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost:3306/dname?characterEncoding=UTF8"
db.default.user=root
db.default.password="password"
db.default.logStatements=true
import play.api.db._
...
class dbTestController @Inject()(dbapi: DBApi) extends Controller {
    ...
    def getFullList():Unit = {
        val db = dbapi.database("default")
        val con = db.getConnection()
        try {
            val stmt = con.createStatement
            val rs = stmt.executeQuery("SELECT * FROM dbname.table_name ORDER BY _cd")
            while (rs.next()) {
                println(rs.getString("_name"))
            }
        } finally {
            con.close()
        }
    }
}


所感

この4年間不干渉だったがネットでタレ流されてる情報が使い物にならず困った
玉石混交な情報がしこたま検索でヒットすれば伸び悩んだ理由が伺いしれる
学習コストが高いとされるが当時は情報少ないなりに有益な情報はあったしそこに到達した
大分時間が立ってるのに未だにAnormが利用されている事に驚きを禁じえないなと