Play Framework配置Mysql
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/test"
db.default.user=user
db.default.password=pass
--------------------------------------------------------------
同時 拷貝 mysql-connector-java-5.1.18.jar 到工程中
-----------------------------------------------------------配置以下依賴
/path/to/webapp/project/Build.scala
val appDependencies = Seq(
"mysql" % "mysql-connector-java" % "5.1.18"
)
糾結了大半天,終於搞定一個demo了。play framework還是可喜的,但是對於mysql的支援我竟然沒找到文件。找了很多論壇什麼的也沒一個說清楚的。真心無語。這裡使用的是官方的todo list demo,具體的程式碼和步驟請參考:
官方例子中是對h2資料庫的支援, H2是一個短小精幹的嵌入式資料庫引擎,詳見google。下面說說如何改成用mysql實現:
其實很簡單,就是加個jar包,改改application.conf 就行了,但是我卻繞了很大的圈子。。。
1.在專案檔案中新增lib資料夾並放入mysql驅動jar包
2.修改application.conf 成
#db.default.driver=org.h2.Driver
#db.default.url="jdbc:h2:mem:play"
db=mysql
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost:3306/todolist?useUnicode=true&characterEncoding=utf-8"
db.default.user="root"
db.default.pass="root"
ebean.default="models.*"
特別注意:在加入lib裡的jar包後需要重啟專案!!!這是我一直跑步起來的原因~~!!!
另外,附帶Task.java的程式碼,因為在對@Required標註label之後,如果不加入相應的getter setter 會報沒有訪問器的錯誤。
- package models;
- import java.util.*;
- import play.db.ebean.*;
- import play.data.validation.Constraints.*;
- import javax.persistence.*;
- @Entity
- publicclass Task extends Model {
- @Id
- public Long id;
- @Required
- public String label;
- publicstatic Finder<Long,Task> find = new Finder(Long.class,Task.class);
- publicstatic List<Task> all() {
- return find.all();
- }
- publicstaticvoid create(Task task) {
- task.save();
- }
- publicstaticvoid delete(Long id) {
- find.ref(id).delete();
- }
- /************* getter and setter*****************/
- public Long getId(){
- return id;
- }
- publicvoid setId(Long id){
- this.id=id;
- }
- public String getLabel(){
- return label;
- }
- publicvoid setLabel(String label){
- this.label=label;
- }
- }