私は 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.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 を使用した場合、問題なく動作します。私を助けてください。
ありがとう!