play framework mysql
阿新 • • 發佈:2019-01-31
糾結了大半天,終於搞定一個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 public class Task extends Model { @Id public Long id; @Required public String label; public static Finder<Long,Task> find = new Finder(Long.class,Task.class); public static List<Task> all() { return find.all(); } public static void create(Task task) { task.save(); } public static void delete(Long id) { find.ref(id).delete(); } /************* getter and setter*****************/ public Long getId(){ return id; } public void setId(Long id){ this.id=id; } public String getLabel(){ return label; } public void setLabel(String label){ this.label=label; } }