1. 程式人生 > >Play Framework配置Mysql

Play Framework配置Mysql

db=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  到工程中

-----------------------------------------------------------配置以下依賴

play會自己下載新增

/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 會報沒有訪問器的錯誤。

  1. package models;  
  2. import java.util.*;  
  3. import play.db.ebean.*;  
  4. import play.data.validation.Constraints.*;  
  5. import javax.persistence.*;  
  6. @Entity
  7. publicclass Task extends Model {  
  8.     @Id
  9.     public Long id;  
  10.     @Required
  11.     public String label;  
  12.     publicstatic Finder<Long,Task> find = new Finder(Long.class,Task.class);  
  13.     publicstatic List<Task> all() {  
  14.         return find.all();  
  15.     }  
  16.     publicstaticvoid create(Task task) {  
  17.         task.save();  
  18.     }  
  19.     publicstaticvoid delete(Long id) {  
  20.         find.ref(id).delete();  
  21.     }  
  22.     /************* getter and setter*****************/
  23.     public Long getId(){  
  24.         return id;  
  25.     }  
  26.     publicvoid setId(Long id){  
  27.         this.id=id;  
  28.     }  
  29.     public String getLabel(){  
  30.         return label;  
  31.     }  
  32.     publicvoid setLabel(String label){  
  33.         this.label=label;  
  34.     }  
  35. }