首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL PersistenceException,“连接关闭”在游戏中!2.2

问MySQL PersistenceException,“连接关闭”在游戏中!2.2
EN

Stack Overflow用户
提问于 2013-09-25 08:57:03
回答 4查看 4.2K关注 0票数 5

我正在试用Play框架,并使用2.2.0版本和Java版本。

我想使用MySQL作为数据库,并且我已经遵循了这个站点的指示。我能够让进化脚本运行,但是我不能将任何东西保存到数据库中。在数据库中创建的表。当我试图调用我的控制器中的Ebean.save()方法时,我得到了Ebean.save。

我所做的是:

  1. 设置build.sbt并添加插件 libraryDependencies ++= Seq( javaJdbc,javaEbean,缓存,"mysql“%”mysql-连接器-java“% "5.1.18”)
  2. 设置conf/application.conf . db.default.url="jdbc:mysql://localhost:3306/TLC?characterEncoding=UTF-8“db.default.driver=com.mysql.jdbc.Driver db.default.user=root db.default.pass=secret
  3. Ebean服务器 Ebean.default=“模特”
  4. 创建控制器类包控制器; 导入com.avaje.ebean.Ebean;导入play.*;导入play.data.Form;导入play.mvc.*;导入models.Bar;导入views.html.*;公共类应用程序扩展控制器{公共静态结果索引(){返回确定(index.render(“新应用程序就绪”);}公共静态结果addBar() { Bar =Form.form(Bar.class).bindFromRequest().get;bar.save();返回重定向(routes.Application.index());}
  5. 创建一个表单
  6. 增加了路线 POST /bars controllers.Application.addBar()
  7. 当然是模型本身。包装模型; 导入play.db.ebean.Model;导入javax.persistence.Entity;导入javax.persistence.Id;@Entity公共类栏扩展模型{ @Id公共字符串id;公共字符串名称;}
  8. 当然,在mysql中创建数据库本身。

我错过了什么?我已经做了4个小时了,仍然不知道出了什么问题。如果我在内存数据库中使用h2,它就能正常工作。请帮帮我。

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2014-02-23 06:11:01

我有类似的问题,我找到了一个解决办法。

罪魁祸首是您的id实体的Bar属性。您已经将id定义为字符串,而不是在保存Bar时设置它。在Long的情况下,id值将自动生成,但是对于String,您需要显式地设置它。

所以,

代码语言:javascript
复制
Bar bar = Form.form(Bar.class).bindFromRequest().get();
bar.id = UUID.randomUUID().toString();
bar.save();

应该解决这个问题。希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2013-10-26 22:05:18

您可能尝试的一件事是升级mysql连接器。你使用的那个有点旧(2011年4月发布)

"mysql“%”mysql-连接器-java“% "5.1.26”

如果这没有帮助,那么我将尝试确保凭据+连接URL是正确的。

票数 0
EN

Stack Overflow用户

发布于 2014-08-01 00:50:54

我也有同样的问题(在Mac和MySQL上),但是我没有使用字符串ID

代码语言:javascript
复制
 User {
     @Id
     public long id;
     public String fullName;    
 }

当我试着:

代码语言:javascript
复制
Ebean.save(user) 

我得到了:

PersistenceException: java.sql.SQLException:连接关闭了!

使用自动增量策略和更新mysql连接器对我没有帮助.

问题是试图在字段中编写unicode,因为没有Unicode,一切都能工作。仔细检查后,发现MySQL数据库是在没有utf8_general_ci的情况下创建的,但是使用现有数据库上的ALTER添加该属性不起作用。

使用默认的排序规则utf8_general_ci,为我创建一个新的数据库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19000438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档