Postgres:语法,标识符,说明

时间:2017-10-23 14:40:33

标签: java postgresql jdbc

我试图了解是否有一条指令,比如MySQL USE,一旦从Java创建,就会选择一个数据库。

我想首先通过url jdbc:postgresql://localhost:5432/(没有数据库)访问dbms,所以我会插入一条指令来创建db,以及另一条使用/选择它的指令。

我正在构建一个应该连接到dbms,创建数据库,使用它,最后删除它的函数(因为我需要临时数据:我尝试了H2 In Memory但是它没有在我的特定工作中运行应用程序)。

我已经能够用MySQL实现这样的行为,但不幸的是我无法使用MySQL;我的代码是:

manager.setJDBCDriver("com.mysql.jdbc.Driver");
manager.setJDBCUsername("root");
manager.setJDBCPassword("mypass");
manager.setJDBCUrl("jdbc:mysql://localhost/");
manager.createConnection();
manager.executeUpdate("CREATE DATABASE " + database);
manager.executeUpdate("USE " + database);

我将把数据库删除查询放在调用后一个代码的模块中。

即使使用PostgreSQL,我也想这样做。

1 个答案:

答案 0 :(得分:0)

使用JDBC时不应该使用use,而应该使用setCatalogsetSchema(您需要使用它取决于数据库,驱动程序和类型对象)。

对于MySQL,相当于usesetCatalog,请参阅Driver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/J

  

始终使用Connection.setCatalog()方法指定所需的方法   JDBC应用程序中的数据库,而不是USE database   言。

不幸的是,PostgreSQL JDBC驱动程序不支持切换到另一个数据库。您需要断开连接并创建新连接。