帮我用java语言实现一个连接多个不同ip的mysql数据库要高可用用代码实现
以下是一个Java程序,可以连接多个不同IP的MySQL数据库,实现高可用:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class MultiDBConnection {
private List<String> urls;
private String user;
private String password;
public MultiDBConnection(List<String> urls, String user, String password) {
this.urls = urls;
this.user = user;
this.password = password;
}
public Connection getConnection() throws SQLException {
SQLException lastException = null;
for (String url : urls) {
try {
Connection conn = DriverManager.getConnection(url, user, password);
if (!conn.isClosed()) {
return conn;
}
} catch (SQLException e) {
lastException = e;
}
}
throw lastException;
}
public static void main(String[] args) throws SQLException {
List<String> urls = new ArrayList<>();
urls.add("jdbc:mysql://192.168.0.1:3306/mydb");
urls.add("jdbc:mysql://192.168.0.2:3306/mydb");
urls.add("jdbc:mysql://192.168.0.3:3306/mydb");
MultiDBConnection multiDBConnection = new MultiDBConnection(urls, "myuser", "mypassword");
Connection conn = multiDBConnection.getConnection();
System.out.println("Connected to database: " + conn.getMetaData().getDatabaseProductName());
}
}
这个程序使用了一个MultiDBConnection类来管理连接多个不同IP的MySQL数据库。在构造函数中传入了多个数据库的URL,用户名和密码。在getConnection()方法中,程序依次尝试连接每个数据库,如果连接成功就返回连接对象,否则就继续尝试下一个数据库。如果所有数据库都连接失败,就抛出最后一个异常。
在main()方法中,程序创建了一个MultiDBConnection对象,传入了三个不同的MySQL数据库的URL和用户名密码。然后调用getConnection()方法获取连接对象,并打印出连接成功后的数据库产品名称
原文地址: https://www.cveoy.top/t/topic/hgxC 著作权归作者所有。请勿转载和采集!