For循环通过不同的数组/Java

For循环通过不同的数组/Java,java,mysql,arrays,Java,Mysql,Arrays,我正在搜索此类代码的简短版本: if (database_1[0].equalsIgnoreCase(data)) { preparedStatement = connect .prepareStatement("update SLIP.CONTACTS set`database_1`=? where user='" + user + "'");

我正在搜索此类代码的简短版本:

        if (database_1[0].equalsIgnoreCase(data)) {

            preparedStatement = connect
                    .prepareStatement("update SLIP.CONTACTS set`database_1`=? where user='"
                            + user + "'");

            preparedStatement.setString(1, vnos );
            preparedStatement.executeUpdate();

        }       else if (database_2[0].equalsIgnoreCase(data)) {

            preparedStatement = connect
                    .prepareStatement("update SLIP.CONTACTS set`database_2`=? where user='"
                            + user + "'");

            preparedStatement.setString(1, vnos );
            preparedStatement.executeUpdate();

        }

所以数据库_1[0]是一个字符串数组。我需要他的第一个元素来检查是否等于字符串数据。是否有快捷方式(用于循环)将数据库_1[0]更改为数据库_2[0],然后再更改为数据库_3[0]等等..请提前发送thx以获取帮助

多维数组

for (int j = 0; j < numberOfDatabases; j++) {
    if (database[j][0].equalsIgnoreCase(data)) {
        preparedStatement = connect
                           .prepareStatement("update SLIP.CONTACTS set `database_" 
                                                 + j + "`=? where user=?");

        preparedStatement.setString(1, vnos);
        preparedStatement.setString(2, user);
        preparedStatement.executeUpdate();

        break;
    }
}
for(int j=0;j
或者更好的是,使用适当的数据结构来保存数据库引用

List<String[]> databases = new ArrayList<String[]>();

// Populate databases.

for (int j = 0; j < databases.size(); j++) {
    if (database.get(j)[0].equalsIgnoreCase(data)) {
        preparedStatement = connect
                           .prepareStatement("update SLIP.CONTACTS set `database_" 
                                                 + j + "`=? where user=?");

        preparedStatement.setString(1, vnos);
        preparedStatement.setString(2, user);
        preparedStatement.executeUpdate();

        break;
    }
}
List databases=new ArrayList();
//填充数据库。
对于(int j=0;j
请注意,这里我从0索引到
size
-1


javaL认为,您还可以如上所述替换
PreparedStatement
中的
user

您可以使用嵌套数组

String [][] databases = new String[numberOfDatabases][itemsInEachDatabase];

for (int i = 0; i < itemsInEachDatabase; i++) {
  databases[0][i] = database_1[i];
}
// repeat this for loop for other databases

for (int i = 0; i < numberOfDatabases; i++) {
  if (databases[i][0].equalsIgnoreCase(data)) {
    // your code here
  }
}
String[]databases=新字符串[numberOfDatabases][itemsInEachDatabase];
对于(int i=0;i
为什么where user='“+user+”'“为什么where user=”对不起,我正在解决数组索引问题。我没有查看他的
PreparedStatement
。修复了
PreparedStatement