Please consider the following code:

 Connection[] MainConnection = new Connection[7]; String[] RemoteIPAddress = new String[7];   /* RemoteIPAddress[0] = "aa.aa.a.aaa"; RemoteIPAddress[1] = "bb.bb.b.bbb"; RemoteIPAddress[2] = "cc.cc.c.ccc"; RemoteIPAddress[3] = "dd.dd.d.ddd"; RemoteIPAddress[4] = "ee.ee.e.eee"; RemoteIPAddress[5] = "ff.ff.f.fff"; RemoteIPAddress[6] = "gg.gg.g.ggg";*/   while(i<7) { try {         Connection connRemote = DriverManager.getConnection("jdbc:mysql://xx.xx.x.xxx:3306/test",MainUser,MainPass);   String maindbsql = "SELECT IP_vch FROM Maindb.TableIPStatus WHERE IPStatus = 1";  	Map<String, Connection> connections = new HashMap<>();   Statement stmt = connRemote.createStatement();   Resultset rs = stmt.executeQuery(maindbsql);   while(rs.next()){   final String ipAddress = rs.getString("IP_vch");   System.out.println("The value of ipAddress is:"+ipAddress); connection.put(ipAddress,DriverManager.getConnection("jdbc:mysql://" + ipAddress + ":3306/test",RemoteUser,RemotePass));         }// END Of WHILE (rs.next())  	//MainConnection[i] = DriverManager.getConnection("jdbc:mysql://" + RemoteIPAddress[i] + ":3306/test",RemoteUser,RemotePass);   String QueryString = "SELECT Query goes here";  	SelectResultsStmt = MainConnection[i].createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);   SelectResultsRS = SelectResultsStmt.executeQuery(QueryString);   while(SelectResultRS.next())	{ String QueryStringInsertFromRemote = "INSERT INTO MY TABLE" "(" +"IP_vch" +" ) "  	+"VALUES" +"("   + " '" + RemoteIPAddress[i] + "' " +")";      	}         }catch(SQLException e){   e.printStackTrace();   }   i++; } END OF ORIGINAL WHILE LOOP while (i < 7)


As seen in some part of my commented code, I was using MainConnection and harcoding the IP addresses before. But since, my query is getting all the eligible(IPStatus = 1) IP addresses,I don't need to hardcode them anymore
and hence I am using Map interface to store the eligible IP addresses as shown above.

Problem I am encountering are as follows:

1) When I was using MainConnection and hardcoded IP addresses, I was using something like the following to make my resultset updatable:

SelectResultsStmt = MainConnection[i].createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

But, considering the fact that I am no longer using the Mainconnection thing, how should I do the same thing with the Resultset now using the HashMap?


2) Similarly, if we go further down the code, in the QueryStringInsertFromRemote , I am inserting the value of the IP address for which the connection has been established at that very moment. Please let me know how can I
overcome with these problem as I am using HashMap here?

3) 1) Considering the fact that I am not hardcoding IP addresses, do I need the while loop now?

Thanks