我可以通过JDBC连接为Postgres设置会话变量吗

时间:2019-11-26 22:44:51

标签: postgresql jdbc

出于性能方面的考虑,我试图限制对数据库的往返行程。目前,我与postgres建立了联系,并发布了一系列SET TIMEZONE='America/New_York'之类的语句。许多数据库允许将会话变量和类似设置作为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支持并且测试失败,我将找不到确切的信息。

1 个答案:

答案 0 :(得分:0)

The documentation说:

  

连接参数

     

[...]

     
      
  • 选项 =字符串
  •   
     

指定“选项”连接初始化参数。

     

此属性的值可能包含空格或其他特殊字符,并且如果在连接URL中提供,则应正确编码。除非使用反斜杠(\)进行了转义,否则空格应视为分隔命令行参数。 \\代表文字反斜杠。

所以您应该使用

props.setProperty("options", "-c timezone=America/New_York");