我正在试用 Play 框架并使用 2.2.0 版本和 Java 版本。
我想使用 MySQL 作为数据库,我已经按照网站上的说明进行操作。我能够运行进化脚本,但我无法将任何内容保存到数据库中。在数据库中创建的表。我[PersistenceException: java.sql.SQLException: Connection is closed!]
在尝试调用我的控制器中的 Ebean.save() 方法时得到了。
我所做的是:
设置 build.sbt 并添加插件
libraryDependencies ++= Seq( javaJdbc, javaEbean, cache, "mysql" % "mysql-connector-java" % "5.1.18" )
设置 conf/application.conf
db.default.driver=com.mysql.jdbc.Driver db.default.url="jdbc:mysql://localhost:3306/TLC?characterEncoding=UTF-8" db.default.user=root db.default.pass=secret
Ebean 服务器
ebean.default="models.*"
创建了控制器类包控制器;
import com.avaje.ebean.Ebean; import play.*; import play.data.Form; import play.mvc.*; import models.Bar; import views.html.*; public class Application extends Controller { public static Result index() { return ok(index.render("Your new application is ready.")); } public static Result addBar() { Bar bar = Form.form(Bar.class).bindFromRequest().get(); bar.save(); return redirect(routes.Application.index()); } }
创建了一个表格
<form action="@routes.Application.addBar()" method="post"> <input name="name"/> <input type="submit"/> </form>
添加了路线
POST /bars controllers.Application.addBar()
当然是模型本身。封装模型;
import play.db.ebean.Model; import javax.persistence.Entity; import javax.persistence.Id; @Entity public class Bar extends Model { @Id public String id; public String name; }
当然,在 mysql 中创建数据库本身。
我错过了什么?我已经做了 4 个小时了,仍然不知道出了什么问题。如果我在内存数据库中使用 h2,它工作得很好。请帮我。
谢谢!