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

--------------------------------------------------------------

 

http://repo.typesafe.com/typesafe/releases/mysql 下载 相关 文件 放到 /home/diego/play/Play20/repository/local/ 下

同时 拷贝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,具体的代码和步骤请参考:

官方todolist 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 会报没有访问器的错误。

 

[java] view plain copy
 
  1. packagemodels;
  2. importjava.util.*;
  3. importplay.db.ebean.*;
  4. importplay.data.validation.Constraints.*;
  5. importjavax.persistence.*;
  6. @Entity
  7. publicclassTaskextendsModel{
  8. @Id
  9. publicLongid;
  10. @Required
  11. publicStringlabel;
  12. publicstaticFinder<Long,Task>find=newFinder(Long.class,Task.class);
  13. publicstaticList<Task>all(){
  14. returnfind.all();
  15. }
  16. publicstaticvoidcreate(Tasktask){
  17. task.save();
  18. }
  19. publicstaticvoiddelete(Longid){
  20. find.ref(id).delete();
  21. }
  22. /*************getterandsetter*****************/
  23. publicLonggetId(){
  24. returnid;
  25. }
  26. publicvoidsetId(Longid){
  27. this.id=id;
  28. }
  29. publicStringgetLabel(){
  30. returnlabel;
  31. }
  32. publicvoidsetLabel(Stringlabel){
  33. this.label=label;
  34. }
  35. }



猜你喜欢

转载自vergilwang.iteye.com/blog/2011137