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

时间:2015-06-30 19:18:31

标签: java jdbc playframework

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

 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。

1 个答案:

答案 0 :(得分:1)

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

让我们说你找到了你的城市查询,现在你在这里:

rs.getString("city");

您可以将其用作视图的参数 - 您可以提供&#39;带数据的视图和视图显示此数据。所以你可以改变它:

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

现在,您的观点(名为cityTemplate.scala.html)必须能够消费&#39;你正在喂它的参数,所以它将是这样的:

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

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

注意@(city: String)的第一行 - 这就是您的说法&#34;我的视图将接受一个String类型的参数,名称为city 。然后,您可以通过在@前加上此参数来使用此参数。您可以在此处详细了解Play Framework中的模板:https://www.playframework.com/documentation/2.3.x/JavaTemplates