在我寻找一种处理多租户播放框架和 postgresql 模式的方法时,我在
这里找到了这篇文章。
问题是我无法弄清楚我可以在游戏中执行普通 sql 语句的方式(我完全是菜鸟),有人可以帮忙吗?
问问题
711 次
2 回答
1
在游戏中,您拥有可以帮助您获取原始 jdbc 对象的 DB 对象。如果您的查询是没有参数的简单更新,您可以执行
DB.execute(simpleUpdate)
如果您的查询是没有参数的简单选择,您可以执行
DB.executeQuery(simpleSelect)
如果您有更复杂的参数,则可以通过直接获取连接来使用 PreparedStatement
PreparedStatement deleteStmt = DB.getConnection().prepareStatement(myStatement);
try {
deleteStmt.setString(1, myString);
deleteStmt.executeUpdate();
} finally {
deleteStmt.close();
}
于 2012-10-03T06:52:08.977 回答
0
我们使用模式对 Postgres 数据库进行分片。这是我们想出的解决方案。我们在 application.conf 中添加多个 DB 连接,并使用自定义 SQL 初始化连接。
# application.conf
db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost/mytest"
db.default.user=your_user
db.default.password=passwd
db.default.initSQL="SET timezone = 'UTC';"
db.tp0.driver=org.postgresql.Driver
db.tp0.url="jdbc:postgresql://localhost/mytest"
db.tp0.user=your_user
db.tp0.password=passwd
db.tp0.initSQL="SET search_path TO tp0, public;SET timezone = 'UTC';"
Java 代码
EbeanServer tp0 = Ebean.getServer("tp0");
List<moneylog> res = tp0.find(moneylog.class).findList();
于 2014-12-04T15:01:59.000 回答