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,具体的代码和步骤请参考:
官方例子中是对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;
- }
- }