【问题标题】:How can I switch the database context of an existing DataSource?如何切换现有 DataSource 的数据库上下文?
【发布时间】:2011-04-12 05:26:58
【问题描述】:

假设我有一个主数据库的现有数据源。我现在需要创建一个新数据库,并在该数据库上执行一些 DDL。这可以通过例如“USE”命令实现吗,还是我需要在 JDBC url 中使用新数据库的名称创建一个新的 DataSource?

【问题讨论】:

    标签: java sql jdbc datasource


    【解决方案1】:

    您可以将“USE”命令作为常规 JDBC 语句运行。

    Statement stmt = connection.createStatement();
    stmt.execute("USE the_other_db");
    

    根据您的 DBMS 和驱动程序,您可能还可以使用 JDBC API 调用 setCatalog():

    connection.setCatalog("the_other_db")
    

    【讨论】:

      【解决方案2】:

      USE 语句有效,但由于它是有状态的,因此您必须确保它与后面的语句属于同一连接的一部分。

      如果您使用 Spring 的 JdbcTemplate 而不是直接使用 java.sql.Connectionjava.sql.Statement,则可以使用 SingleConnectionDataSource

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-27
        • 2021-01-13
        • 1970-01-01
        • 1970-01-01
        • 2019-09-01
        • 2021-04-07
        • 2011-07-23
        相关资源
        最近更新 更多