91

PlayFrameworkは初めてです。PlayEbeansで使用するデータソースとしてMySQLデータベースを構成しようとしています。

Play 2.0フレームワークを使用してMySQLを構成するために必要な手順(ドライバーのダウンロード、依存関係の追加など)について説明してください。

4

10 に答える 10

103

Playのドキュメントからこのページを見てください。それは言う:

主に開発モードで役立つh2インメモリデータベースを除いて、Play2.0はデータベースドライバを提供しません。したがって、本番環境にデプロイするには、データベースドライバーをアプリケーションの依存関係として追加する必要があります。

たとえば、MySQL5を使用する場合は、コネクタの依存関係を追加する必要があります。

val appDependencies = Seq(
    // Add your project dependencies here,
    ...
    "mysql" % "mysql-connector-java" % "5.1.18"
    ...
)

SBTがドライバーをダウンロードします。依存関係の管理に関するセクションも確認する必要があります。

MySQLに接続するには、次の設定も変更する必要がありますapplication.conf

db.default.driver=com.mysql.jdbc.Driver
db.default.url="mysql://root:secret@localhost/myDatabase"
于 2012-04-04T08:03:28.597 に答える
94

Carsten が書いたように、ドキュメントから取得できますが、概要は次のとおりです。

で依存関係が構成されていることを確認してください/project/Build.scala

val appDependencies = Seq(
    // Add your project dependencies here,
    "mysql" % "mysql-connector-java" % "5.1.18"
)

DB の適切な構成を追加します (デフォルトの H2 構成を置き換えます) /conf/application.conf

(URL からエンコーディングを削除しないでください):

db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/your_db_name?characterEncoding=UTF-8"
db.default.user=your_login
db.default.password=your_pass

同じファイルで、次の行がコメントされていないことを確認します。

ebean.default="models.*"

以上で、アプリを再起動 (または開発モードで実行) すると、DDL が作成され、適用するよう求められます。

于 2012-04-04T08:31:30.753 に答える
10

私は play 2.2.0 を使用していますが、プロジェクトのルート フォルダーにある build.sbt に次の行を追加する必要がありました。

  "mysql" % "mysql-connector-java" % "5.1.27"

Play は自動的にドライバーをダウンロードします。これには Build.scala はもう必要ないようです。上記のコメンテーターが言及したように、application.conf への変更を適用する必要があります。

于 2013-11-12T09:22:05.800 に答える
8

私が遭遇した mysql データベースにアクセスする方法のほとんどは、接続を確立してモデル内からデータを取得する方法を説明していません。私のアプリケーションでは、mongoDB と外部の mysql データベースの両方を使用しています。だから、これが私が(mysql側の)ことをした方法です:

  1. Play 2.3.3 の場合、build.sbt ファイルの libraryDependencies に mysql 固有の行を追加します。

    libraryDependencies ++= Seq(
        "mysql" % "mysql-connector-java" % "5.1.27"
    )
    
  2. /conf/application.conf ファイルに次を追加します。

    db.myotherdb.driver = com.mysql.jdbc.Driver
    db.myotherdb.url = "jdbc:mysql://xxx.xxx.xxx.xxx/NameOfOtherDB?characterEncoding=UTF-8"
    db.myotherdb.user = MyOtherDbUSername
    db.myotherdb.password = MyOtherDbPass
    

    デフォルトのデータベースを使用する場合は、「myotherdb」を「default」に置き換えるか、使用したい他の名前に置き換えることができます。「xxx.xxx.xxx.xxx」を、データベースが配置されているサーバーの IP アドレス (外部データベースの場合) またはローカル データベースの場合は localhost (または 127.0.0.1) に置き換えます。「NameOfOtherDB」を使用するデータベースの名前に、「MyOtherDbUSername」をデータベースのユーザー名に、「MyOtherDbPass」をデータベースのパスワードに置き換えます。

  3. モデル (/app/models/MyModel.scala) 内にこれを追加します。

    val connection = DB.getConnection("myotherdb")
    
  4. ステートメントとクエリを作成して実行します。

    val statement = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)
    val query = "SELECT * FROM myTableName"
    val resultset = statement.executeQuery(query)
    
  5. その後、取得したデータでやりたいことを続行できます。例えば:

    while (resultset.next()) {
        resultset.getString("columnName")
    }
    

    ここで、「columnName」は、取得する DB テーブルの列/フィールドの名前です。

最後になりましたが、 close()を呼び出して接続を閉じたい場合があることに注意してください。

于 2014-08-21T11:35:04.167 に答える
7

これを見つけるまで、MySQL の設定に行き詰まりました。

@biesior の回答から得た最も重要なこと:

  • /project/Build.scalaプロジェクトの依存関係 ( 内にあります)に MySQL コネクタ/J を追加します。
  • 依存関係を追加した後、実行して、play dependencies新しく追加された MySQL コネクタ/J 依存関係を解決します
  • デフォルトの eBean 設定行のコメントを外しますebean.default="models.*"
  • 適切な文字エンコーディングを使用して MySQL データベースを正しく構成するdb.default.driver=com.mysql.jdbc.Driver db.default.url="jdbc:mysql://www.sample.com:3306/test?characterEncoding=UTF-8" db.default.user=playuser db.default.pass=playuser

それは私の日を救った。

于 2013-03-19T00:41:04.763 に答える
5

Play 2.4.3 & MYSQL 5.7.9

以前のすべての回答からの情報をつなぎ合わせることで、これを機能させることができました。したがって、ここに別のものがあります。うまくいけば、より最新のものであるか、同様の環境を持つ人に役立ちます。

環境の詳細: (これは私が使用しているものです)

  • Play 2.4.3 これにはactivator-1.3.7-minimalが付属しています
  • JDK8、このバージョンの play は JDK7 では動作しないと思うので、すでにこれを持っているはずです
  • MYSQL 5.7.9

appication.conf

db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost:3306/testSchema?characterEncoding=UTF-8"
db.default.user=yourDBUserName
db.default.password=yourDBUserPass

ノート:

  • URL の testSchema はデータベース名です。MYSQLワークベンチなどを使用している場合は、SCHEMAS セクションの下に表示されます。私は自分のtestSchemaを呼び出しました。他の人は「myDatabase」のように呼ぶかもしれません
  • ポートは MYSQL ポートである必要があります。アプリケーションポートではありません。これ3306が通常 MYSQL のデフォルトであるため、例を示します。

build.sbt

以下の行を build.sbt ファイルに追加します。これは、libraryDependencies ++= Seq()宣言の後に行う必要があります。

libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.36"

ついに

  • プロジェクトルートからこのコマンドを実行します->activator reload
  • アプリケーションを再起動します
于 2015-12-09T18:15:32.730 に答える
4

play 2.3.1の場合、次の手順に従います。

1) プロジェクトの依存関係 (/project/build.sbt 内) に MySQL コネクタ/J を追加します。

libraryDependencies ++= Seq( javaJdbc, javaEbean, "mysql" % "mysql-connector-java" % "5.1.29"

2) デフォルトの ebean 設定行 ebean.default="models.*" のコメントを外します。

3) 適切な文字エンコーディングで MySQL データベースを正しく構成する

db.default.driver=com.mysql.jdbc.Driver    //this is com. and not org.
db.default.url="jdbc:mysql://127.0.0.1/test?characterEncoding=UTF-8"
db.default.user=playuser
db.default.pass=playuser

4) ほとんどのインプ。コンソールでreloadコマンドを実行します。

于 2014-06-27T00:56:30.407 に答える
1

私にとって、この作業は、以下の行を依存関係に追加します。

"mysql" % "mysql-connector-java" % "5.1.36"

コードは次のとおりです。

import java.sql.Connection

val driver = "com.mysql.jdbc.Driver"
val url = "jdbc:mysql://localhost/world"
val username = "root"
val password = "root"
var connection: Connection = null

try {
    // make the connection
    Class.forName(driver)
    connection = DriverManager.getConnection(url, username, password)

    // create the statement, and run the select query
    val statement = connection.createStatement()
    val resultSet = statement.executeQuery("SELECT id , name FROM bar")

    val sql: SqlQuery = SQL("select * from products order by name asc")

    while (resultSet.next()) {
        val id = resultSet.getString("id")
        val name = resultSet.getString("name")
        println(id, name)
    }
} catch {
case e: Exception => println("exception caught: " + e);
}
connection.close()
于 2016-02-12T07:58:39.590 に答える