我试图了解是否有一条指令,比如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,我也想这样做。
答案 0 :(得分:0)
使用JDBC时不应该使用use
,而应该使用setCatalog
和setSchema
(您需要使用它取决于数据库,驱动程序和类型对象)。
对于MySQL,相当于use
为setCatalog
,请参阅Driver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/J:
始终使用
Connection.setCatalog()
方法指定所需的方法 JDBC应用程序中的数据库,而不是USE database
言。
不幸的是,PostgreSQL JDBC驱动程序不支持切换到另一个数据库。您需要断开连接并创建新连接。