java playframework 如何在视图中显示数据库结果

java playframework how can I display database results in the view

我是 playframework 2.38 和 JDBC 的新手,但我已经成功连接到 MySQL 并且可以插入,但是我不知道如何使用 [=28 向浏览器显示记录=] 或播放框架。我知道我很接近这是我的控制器..

 public static Result getlocation()
{
try {

    Connection conn = DB.getConnection();
    ResultSet rs;
    PreparedStatement ps = conn.prepareStatement("select city from zips where city=? limit 1");
    ps.setString(1,"Dallas");
    rs = ps.executeQuery();
    while (rs.next() ) {
        rs.getString("city");
    }

    conn.close();
    return ok(rs.toString());
} catch (Exception e) {
    System.err.println("Got an exception! ");
}


return ok();
  }

我想做的就是从 MySQL 获取记录并将其传递给视图,但出现此错误 com.mysql.jdbc.JDBC4ResultSet@29ffd4fa 我的看法是这样

<html>
    <head>
        <title>Play project get database record </title>
    </head>

    <body>

    </body>
</html>

我需要在视图中放入什么来显示我的数据库记录?我在网上看到的所有信息都是关于 play-scala 而不是关于 Java.

您得到的不是错误 - 这只是结果集的 toString 表示 - 这就是您在编写此行时所做的 rs.toString().

假设您通过查询找到了您所在的城市,现在您在这里:

rs.getString("city");

您可以仅将其用作视图的 参数 - 您 'feed' 带有数据的视图,并且视图显示此数据。所以你可以像这样改变它:

String myCity = rs.getString("city");
return ok(cityTemplate.render(myCity));

现在,您的视图(名为 cityTemplate.scala.html)必须能够 'consume' 您为其提供的参数,因此它会像这样:

@(city: String)
<html>
    <head>
        <title>Play project get database record </title>
    </head>

    <body>
        <h1>Your city is @city</h1>
    </body>
</html>

注意带有 @(city: String) 的第一行 - 这就是您所说的“我的视图将接受一个参数,类型为 String,名称为 city。然后您可以通过在其前面添加 @ 来使用此参数。您可以在此处了解有关 Play Framework 中模板的更多信息:https://www.playframework.com/documentation/2.3.x/JavaTemplates