2014-01-16 41 views
0

我们有一个处理postgresql数据库的java gui的演示文稿。Postgre SQL Schema连接绑定

在演示服务器上,我们有一些模式,一个是为我们的组保留的。

我现在的问题是将Schema绑定到连接,以至于在整个过程中绑定了模式。这是我到目前为止,但c.setSchema()似乎并未实现,也许还有其他方法。

Class.forName("org.postgresql.Driver"); 

    c = DriverManager.getConnection("jdbc:postgresql://" + host + ":" 
    + port + "/" + databaseName, username, password); 

    c.setAutoCommit(false); 
    c.setSchema("b7"); 

感谢斯特凡斯普伦杰

EDIT(第一次尝试):

c = DriverManager.getConnection("jdbc:postgresql://" + host + ":" 
      + port + "/" + databaseName+"?searchpath=b7", username, password); 

没有错误,但没有工作

+0

笑downvote没有评论;)福 –

回答

1

我通过简单地添加schema.table ..

作为一个例子,我给的模式作为输入参数,并将其存储到字符串的模式解决了这个问题。

如果我叫喜欢的查询:

Select * from TABLE; 

现在看起来

Select * from schema.TABLE; 

和它的作品;)

+2

是的,幸好这是必要的。希望有一种方法可以将searchpath作为参数传递给JDBC url连接字符串,这样我就不必在我的所有语句中添加所有表名。 – djangofan

1

此URL格式jdbc:postgresql://localhost:5432/mydatabase?searchpath=myschema似乎从来没有去到官方驱动,而不必在建立连接后执行此语句set search_path to 'schema'

+0

我已经尝试过这一点,不工作:(..我编辑我的问题,所以你可以看到我的第二次尝试 –

+0

你使用最新的驱动程序? –

+0

9.3 - 1100.jdbc41.jar –