【发布时间】:2019-11-26 22:44:51
【问题描述】:
出于性能原因,我试图限制对数据库的往返次数。目前我连接并发布了一系列语句,如SET TIMEZONE='America/New_York' 到 postgres。许多数据库允许将会话变量和类似设置作为 jdbc url 的一部分(即jdbc:postgresql://localhost:5435/test?timezone=America/New_York)传递给数据库,或者像这样将其添加到属性列表中......
String url = "jdbc:postgresql://localhost/test:5435";
Properties props = new Properties();
props.setProperty("user","fred");
props.setProperty("password","secret");
props.setProperty("timezone","America/New_York");
Connection conn = DriverManager.getConnection(url, props);
如果 postgres 支持并且测试失败,我无法找到确切的信息。
【问题讨论】:
-
"一系列语句,如" - 如果您使用
;分隔它们,您可以在一次往返中发送所有这些查询。尽管 JDBC 规范不允许使用单个execute()调用运行多个语句,但 Postgres JDBC 驱动程序确实支持这一点,例如stmt.execute("set timezone='...'; set work_mem='64MB'; set ...;")
标签: postgresql jdbc