tutorial play framework java playframework playframework-2.0 ebean

java - tutorial - Pasos necesarios para usar la base de datos MySQL con Play Framework 2.0



play framework postgresql (10)

Juega 2.4.3 y MYSQL 5.7.9

Pude hacer que funcionara reuniendo fragmentos de información de todas las respuestas anteriores. Así que aquí hay otro, que con suerte está más actualizado o es más útil para quienes tienen un entorno similar.

Detalles del entorno: ( esto es lo que estoy usando )

  • Play 2.4.3 viene con activador-1.3.7-minimal
  • JDK8, ya deberías tener esto, ya que no creo que esta versión de juego funcione con 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

Nota:

  • TestSchema en el URL es su nombre de base de datos, si está utilizando algo como MYSQL workbench , verá esto en la sección SCHEMAS. Llamé a mi examen TestSchema. Otros pueden llamarlo algo así como "myDatabase"
  • El puerto debe ser el puerto MYSQL. No es su puerto de aplicación. Puse 3306 en el ejemplo porque generalmente es el predeterminado para MYSQL.

build.sbt

Agregue esta línea a su archivo build.sbt. Esto debería ir después de la declaración de libraryDependencies ++= Seq() .

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

Finalmente

  • ejecuta este comando desde la raíz del proyecto -> activator reload
  • reinicia tu aplicación

Soy nuevo en Play framework. Estoy tratando de configurar la base de datos MySQL como fuente de datos para usar con Play Ebeans.

¿Podría alguien explicar por favor los pasos que se necesitan para configurar MySQL con el marco de Play 2.0 (como descargar controladores, agregar dependencia, etc.).


Como escribió Carsten, se puede obtener de la documentación, sin embargo, aquí hay un resumen:

asegúrese de tener la dependencia configurada en /project/Build.scala

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

Agregue una configuración adecuada de la base de datos (reemplace la configuración H2 predeterminada) en /conf/application.conf :

(no elimine la codificación de la 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

en el mismo archivo, encuentre y asegúrese de que esta línea NO esté comentada:

ebean.default="models.*"

Eso es todo, reinicie su aplicación (o ejecute en modo dev), luego creará un DDL y le pedirá que lo aplique.


Estoy usando Play 2.2.0 y solo tuve que agregar la siguiente línea a build.sbt en la carpeta raíz del proyecto.

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

Y jugar descarga automáticamente el controlador. Parece que Build.scala ya no se necesita para esto. Los cambios en application.conf se deben aplicar como los comentaristas anteriores han mencionado.


La mayoría de los métodos de acceso a una base de datos mysql con los que me he encontrado no explican cómo establecer una conexión y recuperar datos desde dentro del Modelo. En mi aplicación, estoy usando tanto mongoDB como una base de datos mysql externa. Así que aquí está cómo lo hice (el lado mysql de) las cosas:

  1. Para Play 2.3.3, en el archivo build.sbt agregue la línea específica de mysql en libraryDependencies:

    libraryDependencies ++= Seq( "mysql" % "mysql-connector-java" % "5.1.27" )

  2. En el archivo /conf/application.conf, agregue esto:

    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

    Puede reemplazar "myotherdb" por "predeterminado" en caso de que desee utilizar la base de datos predeterminada o con cualquier otro nombre que desee utilizar. Reemplace "xxx.xxx.xxx.xxx" con la dirección IP del servidor donde se encuentra su base de datos (en el caso de una base de datos externa) o localhost (o 127.0.0.1) para la base de datos local. Reemplace "NameOfOtherDB" con el nombre de la base de datos que desea utilizar, el "MyOtherDbUSername" con su nombre de usuario de base de datos y "MyOtherDbPass" con la contraseña de su base de datos.

  3. Dentro de su Modelo (/app/models/MyModel.scala) agregue esto:

    val connection = DB.getConnection("myotherdb")

  4. Crea la declaración, la consulta y ejecútala:

    val statement = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY) val query = "SELECT * FROM myTableName" val resultset = statement.executeQuery(query)

  5. Luego puede continuar con lo que quiera hacer con los datos recuperados. Por ejemplo:

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

    Donde "columnName" es el nombre de la columna / campo de la tabla DB que desea recuperar.

Por último, pero no menos importante, me gustaría señalar que es posible que desee cerrar la conexión llamando a close ()


Me quedé atrapado con mi configuración de MySQL hasta que encontré esto.

Las cosas más importantes tomadas de @biesior responden:

  • Agregue el conector / J de MySQL en la dependencia del proyecto (que está dentro de /project/Build.scala )
  • Después de agregar la dependencia, ejecute las play dependencies para resolver el conector MySQL recién agregado / dependencia J
  • Descomentar la línea de configuración ebean predeterminada ebean.default ebean.default="models.*"
  • Configure la base de datos MySQL correctamente con la codificación de caracteres adecuada 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

Me salvó el día.


Mira esta página desde la documentación de Play. Dice:

Aparte de la base de datos en memoria h2, útil principalmente en el modo de desarrollo, Play 2.0 no proporciona ningún controlador de base de datos. En consecuencia, para implementar en producción, deberá agregar su controlador de base de datos como una dependencia de la aplicación.

Por ejemplo, si usa MySQL5, necesita agregar una dependencia para el conector:

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

SBT descargará el controlador por usted. También debe consultar la sección sobre administración de dependencias .

Para conectarse a MySQL, también deberá cambiar algunas configuraciones en su application.conf :

db.default.driver=com.mysql.jdbc.Driver db.default.url="mysql://root:secret@localhost/myDatabase"


Para jugar 2.3.1 , sigue estos pasos.

1) Agregue el conector / J de MySQL en la dependencia del proyecto (que está dentro de /project/build.sbt)

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

2) Descomentar la línea de configuración ebean predeterminada ebean.default = "models. *"

3) Configure la base de datos MySQL correctamente con la codificación de caracteres adecuada

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) La mayoría de Imp. Ejecute un comando de recarga en la consola.


Para jugar java project Usando SBT

Cambie la bibliotecaDependencia a llok como esta en "build.sbt"

libraryDependencies ++= Seq( javaJdbc, javaEbean, cache, javaWs, "mysql" % "mysql-connector-java" % "5.1.27" )

Ejecute su proyecto usando "activador run"

La reproducción disminuirá el conector jdbc requerido.


Tuve el mismo problema en el último Play Framework 2.4.x con el activador 1.3.6.

Aquí están los pasos. Seguí los pasos que se describen aquí https://www.playframework.com/documentation/2.4.x/JavaDatabase

Aquí está mi application.conf

# MySQL DB Configuration db.default.driver=com.mysql.jdbc.Driver db.default.url="jdbc:mysql://{hostname or ipaddres}/{db name}?characterEncoding=UTF-8" db.default.username=username // Note that user id deprecated, instead use username. Though that is not a major issue db.default.password="password" # JPA Configurations jpa.default=defaultPersistenceUnit PlayKeys.externalizeResources = false # JavaEbean configuration ebean.default = ["models.*"]

Aquí está build.sbt

libraryDependencies ++= Seq( javaJdbc, cache, javaWs, javaJpa, evolutions, "mysql" % "mysql-connector-java" % "5.1.27" )

plugins.sbt

// The Play plugin addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.3") // Web plugins addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0") addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.6") addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.3") addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7") addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0") addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0") // Play enhancer - this automatically generates getters/setters for public fields // and rewrites accessors of these fields to use the getters/setters. Remove this // plugin if you prefer not to have this feature, or disable on a per project // basis using disablePlugins(PlayEnhancer) in your build.sbt addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0") // Play Ebean support, to enable, uncomment this line, and enable in your build.sbt using // enablePlugins(SbtEbean). Note, uncommenting this line will automatically bring in // Play enhancer, regardless of whether the line above is commented out or not. addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0")

Aquí está el paso importante.

Después de configurar los pasos anteriores, vaya a la línea de comando, detenga su activador y ejecute el comando activator run . En mi situación, seguía recibiendo el error unable to find mysql drivers . Después de ejecutar la ejecución del activator run , el activador realmente descargaría los controladores MySQL y resolvería las dependencias. Ese es el paso importante que resolvió mi problema.


For me this work ,Add this below line into your Dependencies **"mysql" % "mysql-connector-java" % "5.1.36"** So , here is the code 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()