首页 > 解决方案 > 如果 else 语句没有正确达到条件 java

问题描述

我有这段代码:它应该根据条件更新 mysql 表:如果列没有空约束 - 它存储在 strSplited 中,然后如果 if 中的条件为真,则它会相应地更新。

但它总是得到 else 结果,即使第一个 if 的条件都满足了。

我不明白出了什么问题(尽管代码很糟糕)

PS我没有得到strSplited.length = 1,它总是> 1

String queryConstructor = null;
int valoareConstr = constrMax(max);
String[] strSplited = str.trim().split("\\s+");
    if (strSplited.length == 2 && strSplited[0] =="ID" && strSplited[1] == "NumePersoana") {
        queryConstructor = "ALTER TABLE persoane MODIFY NumePersoana char(" + valoareConstr
       + ") not null, MODIFY CNP char(" + valoareConstr + "),MODIFY Adresa char(" + valoareConstr
       + ");";
       String queryConstr = queryConstructor;
       System.out.println("Rez primul if: "+queryConstr);
   } else if (strSplited.length == 2 && strSplited[0] == "NumePersoana" && strSplited[1] == "Adresa") {
        queryConstructor = "ALTER TABLE persoane MODIFY NumePersoana char(" + valoareConstr
       + ") not null, MODIFY CNP char(" + valoareConstr + "), MODIFY Adresa char(" + valoareConstr
       + ") not null;";
   } else if (strSplited.length == 2 && strSplited[0] == "CNP" && strSplited[1] == "Adresa") {
        queryConstructor = "ALTER TABLE persoane MODIFY NumePersoana char(" + valoareConstr
       + "), MODIFY CNP char(" + valoareConstr + ") not null, MODIFY Adresa char(" + valoareConstr
       + ") not null;";
   } else if (strSplited.length == 2 && strSplited[0] == "CNP" && strSplited[1] == "NumePersoana") {
        queryConstructor = "ALTER TABLE persoane MODIFY NumePersoana char(" + valoareConstr
       + ") not null, MODIFY CNP char(" + valoareConstr + ") not null, MODIFY Adresa char(" + valoareConstr
       + ");";
   } 
 }   else if (strSplited.length == 3 && strSplited[0] == "NumePersoana" && strSplited[1] == "CNP" && strSplited[2] == "Adresa") {
     queryConstructor = "ALTER TABLE persoane MODIFY NumePersoana char(" + valoareConstr
  + ") not null, MODIFY CNP char(" + valoareConstr + ") not null, MODIFY Adresa char(" + valoareConstr
  + ") not null;";
 } else {
     queryConstructor = "ALTER TABLE persoane MODIFY NumePersoana char(" + valoareConstr
     + "), MODIFY CNP char(" + valoareConstr + "),MODIFY Adresa char("
     + valoareConstr + ");";
     System.out.println("nu sa executat if-ul asta smecher: " + queryConstructor);
 }

标签: javamysqlsqlarraysif-statement

解决方案


推荐阅读