gpt4 book ai didi

mysql - 使用 Play Framework 和 bean 更新单个 MYSQL 表记录时出现空指针异常

转载 作者:行者123 更新时间:2023-11-29 03:31:12 24 4
gpt4 key购买 nike

我是 playframework 的新手。我已经使用 createSQLUpdate 语句更新了记录。我想使用 Ebean 内置的保存方法实现相同的目的。

当我在下面的代码中执行在 bar1.setplace 中获取 [NullPointerException: null] 时。

public static Result updateBarbean() {
Bar bar = Form.form(Bar.class).bindFromRequest().get();
Bar bar1 = Ebean.find(Bar.class,bar.name);
bar1.setPlace(bar.place);
Ebean.save(bar);
return ok(bar.name);
}

Index.scala.html

<h2><font color= "red">  Using bean update a record </font></h1>

<form action="@routes.Application.updateBarbean()" method="POST">
<label for="name"> Enter Your name</label> <input name="name"/> <br>
<label for="place"> Enter Your place</label> <input name="place"/> <br>
<input type="submit"/>
</form>

最佳答案

最简单的方法是调试 play 应用程序并查看 bar.place 抛出 NPE 的原因。但这里有一些可能也会有所帮助。

第一种可能性:尝试使用 setter/getter :

bar1.setPlace(bar.getPlace());

在 Bar.java 中你也需要 getter。

public whatEver getPlace() {
return place;
}

第二种可能:你说你想更新一行,对吧?所以我认为你的代码应该是这样的:

public static Result updateBarbean() {
Bar bar = Form.form(Bar.class).bindFromRequest().get();
Bar bar1 = Ebean.find(Bar.class,bar.name);
bar1.setPlace(bar.place);
Ebean.update(bar1);
return ok(bar.name);
}

您的代码可能是正确的,但我认为您想要的是用标识符“name”更新 Bar 对象。因此,您从表单中获取 bar 并从表中获取 bar1。因此,您将新位置设置为 bar1 并想要更新它。重要的是要知道,如果你使用 update(),你只能更新一行,因为如果你想写一个新的,你只能使用 save()一。如果我误解了什么,请告诉我;)

关于mysql - 使用 Play Framework 和 bean 更新单个 MYSQL 表记录时出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30365372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com