3

最近开始使用 play 2.1.x。我想知道每个请求执行一次原始 sql 查询的最佳方法是什么?我使用postgres并且需要指定什么模式 - “将 search_path 设置为...” - 每个请求一次的查询类型。

我用 jdbc 配置了 postgres,它连接正常,发现一些旧评论 play.db.DB 应该有一个 executeQuery 方法,但现在没有了?

要为每个请求运行代码,我已经覆盖了 GlobalSettings 类的“onRequest”方法:

    @Override
public Action onRequest(Request request, Method actionMethod) {
   //play.api.db.DB.executeQuery(); // -- This does not exist?
   return super.onRequest(request, actionMethod);
}

我不知道这是否是最好的方法,任何帮助将不胜感激。我无法更改底层架构,我确实需要将搜索路径设置为 schema =)

4

1 回答 1

5

您错误地查看了我认为的 scala 文档。检查这些:

http://www.playframework.com/documentation/2.1.3/api/java/index.html

http://www.playframework.com/documentation/2.1.3/JavaDatabase

您可能想要使用 play.db.DB.getConnection(),它返回一个 java.sql.Connection。然后,您可以使用标准的 java api。

String sql = "...";

Connection conn = play.db.DB.getConnection();
try {
    Statement stmt = conn.createStatement();
    try {
        stmt.execute(sql)
    } finally {
        stmt.close();
    }
} finally {
    conn.close();
}
于 2013-08-31T16:41:45.410 回答