die*_*end 5 java mysql sql playframework ebean
我正在尝试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"
)
Run Code Online (Sandbox Code Playgroud)设置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
Run Code Online (Sandbox Code Playgroud)Ebean服务器
ebean.default="models.*"
Run Code Online (Sandbox Code Playgroud)创建控制器类包控制器;
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());
}
}
Run Code Online (Sandbox Code Playgroud)创建了一个表单
<form action="@routes.Application.addBar()" method="post">
<input name="name"/>
<input type="submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)添加了路线
POST /bars controllers.Application.addBar()
Run Code Online (Sandbox Code Playgroud)当然是模型本身.包装模型;
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;
}
Run Code Online (Sandbox Code Playgroud)当然,在mysql中创建数据库本身.
我错过了什么?我这样做了4个小时,但仍然不知道出了什么问题.如果我在内存数据库中使用了h2,它的工作正常.请帮我.
谢谢!
您可以尝试的一件事是升级 mysql 连接器。您使用的版本有点旧(2011 年 4 月发布)
“mysql”%“mysql-connector-java”%“5.1.26”
如果这没有帮助,那么我会尝试确保凭据 + 连接 URL 正确。
| 归档时间: |
|
| 查看次数: |
3492 次 |
| 最近记录: |