저는 Play 프레임 워크를 처음 사용합니다. MySQL 데이터베이스를 Play Ebeans와 함께 사용할 데이터 소스로 구성하려고합니다.
Play 2.0 프레임 워크로 MySQL을 구성하는 데 필요한 단계 (드라이버 다운로드, 종속성 추가 등)를 설명해 주시겠습니까?
답변
Play 문서 에서이 페이지 를 보십시오 . 그것은 말한다 :
주로 개발 모드에서 유용한 h2 인 메모리 데이터베이스를 제외하고 Play 2.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"
답변
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이 생성되고 적용을 요청합니다.
답변
play 2.2.0을 사용하고 있으며 프로젝트의 루트 폴더에 build.sbt에 다음 줄을 추가해야했습니다.
"mysql" % "mysql-connector-java" % "5.1.27"
그리고 play는 자동으로 드라이버를 다운로드합니다. Build.scala가 더 이상 필요하지 않은 것 같습니다. 위의 주석가가 언급 한대로 application.conf에 대한 변경 사항을 적용해야합니다.
답변
내가 본 mysql 데이터베이스에 액세스하는 대부분의 방법은 연결을 설정하고 모델 내에서 데이터를 검색하는 방법을 설명하지 않습니다. 내 응용 프로그램에서 mongoDB와 외부 mysql 데이터베이스를 모두 사용하고 있습니다. 그래서 여기에 내가 (mysql 쪽) 일을 한 방법이 있습니다.
-
Play 2.3.3의 경우 build.sbt 파일에서 libraryDependencies에 mysql 특정 행을 추가하십시오.
libraryDependencies ++= Seq( "mysql" % "mysql-connector-java" % "5.1.27" )
-
/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”를 데이터베이스가있는 서버 (외부 데이터베이스의 경우) 또는 로컬 데이터베이스의 경우 localhost (또는 127.0.0.1)의 IP 주소로 바꿉니다. “NameOfOtherDB”를 사용하려는 데이터베이스 이름으로 바꾸고, “MyOtherDbUSername”을 데이터베이스 사용자 이름으로, “MyOtherDbPass”를 데이터베이스 암호로 바꿉니다.
-
모델 (/app/models/MyModel.scala) 안에 다음을 추가하십시오.
val connection = DB.getConnection("myotherdb")
-
문, 쿼리를 생성하고 실행합니다.
val statement = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY) val query = "SELECT * FROM myTableName" val resultset = statement.executeQuery(query)
-
그런 다음 검색된 데이터로 원하는 작업을 계속할 수 있습니다. 예를 들면 :
while (resultset.next()) { resultset.getString("columnName") }
여기서 “columnName”은 검색하려는 DB 테이블 열 / 필드의 이름입니다.
마지막으로 close () 를 호출하여 연결을 닫고 싶을 수도 있습니다.
답변
이것을 찾을 때까지 내 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
그것은 내 하루를 구했습니다.
답변
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) 대부분의 임프. 콘솔에서 다시로드 명령을 실행하십시오 .
답변
2.4.3 및 MYSQL 5.7.9 플레이
나는 이전의 모든 답변에서 얻은 정보를 모아서 이것을 작동시킬 수있었습니다. 그래서 여기에 또 다른 것이 있는데, 이것은 비슷한 환경을 가진 사람들에게 더 최신이거나 유용하기를 바랍니다.
환경 세부 정보 : ( 이것은 내가 사용하고있는 것입니다 )
- Play 2.4.3은 activator-1.3.7- 최소 와 함께 제공됩니다.
- JDK8,이 버전의 플레이가 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
- 응용 프로그램을 다시 시작하십시오