在Java中,可以通过使用javax.sql.DataSource接口来实现多数据源切换。下面是一个示例代码,展示了如何在Java中使用多数据源。

首先,你需要在你的项目中引入数据库驱动的依赖,比如MySQL的驱动依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>

然后,你可以创建两个不同的数据库连接配置,如下所示:

import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSource;

public class DataSourceUtil {
    private static DataSource dataSource1;
    private static DataSource dataSource2;

    static {
        dataSource1 = createDataSource("jdbc:mysql://localhost:3306/db1", "username1", "password1");
        dataSource2 = createDataSource("jdbc:mysql://localhost:3306/db2", "username2", "password2");
    }

    private static DataSource createDataSource(String url, String username, String password) {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }

    public static DataSource getDataSource1() {
        return dataSource1;
    }

    public static DataSource getDataSource2() {
        return dataSource2;
    }
}

接下来,你可以使用javax.sql.DataSource来获取数据库连接,如下所示:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.sql.DataSource;

public class Main {
    public static void main(String[] args) throws Exception {
        DataSource dataSource1 = DataSourceUtil.getDataSource1();
        
        try (Connection connection = dataSource1.getConnection();
             Statement statement = connection.createStatement();
             ResultSet resultSet = statement.executeQuery("SELECT * FROM table1")) {
            while (resultSet.next()) {
                // 处理结果集
            }
        }
        
        DataSource dataSource2 = DataSourceUtil.getDataSource2();
        
        try (Connection connection = dataSource2.getConnection();
             Statement statement = connection.createStatement();
             ResultSet resultSet = statement.executeQuery("SELECT * FROM table2")) {
            while (resultSet.next()) {
                // 处理结果集
            }
        }
    }
}

在上面的示例中,DataSourceUtil类提供了两个不同的数据源dataSource1dataSource2,你可以根据需要选择正确的数据源来获取连接。然后,你可以使用获取的连接来执行SQL查询操作。

请注意,这只是一个简单的示例,实际上在生产环境中,你可能需要使用连接池来管理连接,以提高性能和资源利用率。你可以使用诸如Apache Commons DBCP、HikariCP等连接池库来实现连接池

java下jdbc多数据源切换方法

原文地址: https://www.cveoy.top/t/topic/hWWF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录