gpt4 book ai didi

java - MySQL 和 Java - 多个数据库的重复操作

转载 作者:行者123 更新时间:2023-11-29 12:08:51 25 4
gpt4 key购买 nike

我有一个 Java 程序,它对数据库执行一些搜索操作,这是代码:

public class DBSearch {

public static void SearchDatabase() throws Exception{
ArrayList<String> names = new ArrayList<String>();
Connection c = null;
PreparedStatement ps = null;
ResultSet rs = null;
String host = "localhost";
String db = "mydatabase";
String user = "root";
String password = "password";
Class.forName("com.mysql.jdbc.Driver");
c = DriverManager.getConnection("jdbc:mysql://"+host+"/" + db +"?user="+user+"&password="+password);
ps = c.prepareStatement("SELECT NAME FROM NAMES");
rs = ps.executeQuery();
names.clear()
while ( rs.next() ) {
names.add(rs.getString("NAME"));
}
for(i = 1; i < names.size(); i++){
//Do some database operations

现在我想做的是,在这些操作结束时,该过程开始在另一个数据库中进行相同的操作。我的想法是创建一个名为 dblist 的 ArrayList,其中包含所有数据库名称,然后执行如下操作:

...
for(i=1, i < dblist.size(); i++{
Class.forName("com.mysql.jdbc.Driver");
c = DriverManager.getConnection("jdbc:mysql://"+host+"/" + dblist.get(i) +"?user="+user+"&password="+password);

但该过程似乎不会针对每个数据库循环,它仅适用于数组中的第一个数据库,然后停止。

最佳答案

您收到什么消息?没有人可以根据您发布的内容提供帮助。

这是丑陋且低效的代码。

我将提供一些建议:

  1. 外部数据库配置。重复使用会更容易。您还可以利用连接池。
  2. 将操作封装在可轻松测试的基于接口(interface)的 POJO 中。
  3. 这个问题很容易并行化。一旦您的 POJO 运行并经过测试,您就可以使用 Callable 来使用 Executable 一次查询多个数据库。

听起来是个糟糕的设计。为什么要将冗余数据分散在多个数据库中?

关于java - MySQL 和 Java - 多个数据库的重复操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31046398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com