gpt4 book ai didi

java - 我正在尝试找到一种比使用一堆 switch 语句更有效的方法

转载 作者:行者123 更新时间:2023-12-02 02:44:54 26 4
gpt4 key购买 nike

我无法弄清楚如何使我的方法更有效,我正在使用开关来填写一些文本字段,这不是最有效的方法,但我已经尝试并试图想出一个更好的方法方式,但我真的被困住了。我有 130 组 3 个文本字段。我从数据库获取信息来填充字段,然后使用 switch 语句填充每个集合。这会减慢结果的速度,但还没有达到我无法忍受的程度,但我正在寻找一种更有效的方法来处理这个问题。我非常感谢我能得到的任何帮助。

这是我的代码

@FXML
private void GetAssingActionPerformed(ActionEvent event) {
// Fill in the run fields with the information stored in the runassingn db table.
String user = "root";
String password = "";

try {
// Get connection.
Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/kennelmanagment1", user, password);

// Create statement.
Statement myStmt = myConn.createStatement();

// Execute query.
ResultSet myRs = myStmt.executeQuery("SELECT * FROM runasign");

int count = 1;
// Process the result.
while (myRs.next()) {
switch (count) {
case 1:
Names1.setText(myRs.getString("name").toUpperCase());
Sex1.setText(myRs.getString("sex").toUpperCase());
Owners1.setText(myRs.getString("owner").toUpperCase());
break;
case 2:
Names2.setText(myRs.getString("name").toUpperCase());
Sex2.setText(myRs.getString("sex").toUpperCase());
Owners2.setText(myRs.getString("owner").toUpperCase());
break;
case 3:
Names3.setText(myRs.getString("name").toUpperCase());
Sex3.setText(myRs.getString("sex").toUpperCase());
Owners3.setText(myRs.getString("owner").toUpperCase());
break;
case 4:
Names4.setText(myRs.getString("name").toUpperCase());
Sex4.setText(myRs.getString("sex").toUpperCase());
Owners4.setText(myRs.getString("owner").toUpperCase());
break;
case 5:
Names5.setText(myRs.getString("name").toUpperCase());
Sex5.setText(myRs.getString("sex").toUpperCase());
Owners5.setText(myRs.getString("owner").toUpperCase());
break;
case 6:
Names6.setText(myRs.getString("name").toUpperCase());
Sex6.setText(myRs.getString("sex").toUpperCase());
Owners6.setText(myRs.getString("owner").toUpperCase());
break;
case 7:
Names7.setText(myRs.getString("name").toUpperCase());
Sex7.setText(myRs.getString("sex").toUpperCase());
Owners7.setText(myRs.getString("owner").toUpperCase());
break;
case 8:
Names8.setText(myRs.getString("name").toUpperCase());
Sex8.setText(myRs.getString("sex").toUpperCase());
Owners8.setText(myRs.getString("owner").toUpperCase());
break;
case 9:
Names9.setText(myRs.getString("name").toUpperCase());
Sex9.setText(myRs.getString("sex").toUpperCase());
Owners9.setText(myRs.getString("owner").toUpperCase());
break;
case 10:
Names10.setText(myRs.getString("name").toUpperCase());
Sex10.setText(myRs.getString("sex").toUpperCase());
Owners10.setText(myRs.getString("owner").toUpperCase());
break;

//As you can see I have removed the redundant cases 11 thur 125




case 126:
Names126.setText(myRs.getString("name").toUpperCase());
Sex126.setText(myRs.getString("sex").toUpperCase());
Owners126.setText(myRs.getString("owner").toUpperCase());
break;
case 127:
Names127.setText(myRs.getString("name").toUpperCase());
Sex127.setText(myRs.getString("sex").toUpperCase());
Owners127.setText(myRs.getString("owner").toUpperCase());
break;
case 128:
Names128.setText(myRs.getString("name").toUpperCase());
Sex128.setText(myRs.getString("sex").toUpperCase());
Owners128.setText(myRs.getString("owner").toUpperCase());
break;
case 129:
Names129.setText(myRs.getString("name").toUpperCase());
Sex129.setText(myRs.getString("sex").toUpperCase());
Owners129.setText(myRs.getString("owner").toUpperCase());
break;
case 130:
Names130.setText(myRs.getString("name").toUpperCase());
Sex130.setText(myRs.getString("sex").toUpperCase());
Owners130.setText(myRs.getString("owner").toUpperCase());
break;
}

count ++;
}

} catch (Exception exc) {
exc.printStackTrace();
}
}

最佳答案

所有这些情况都是多余的:您所需要的只是一个包含 130 个项目的数组,每个项目由三个字段组成,分别代表 NameGender所有者。。您的循环应如下所示:

while (myRs.next()) {
DisplayBlock obj = blocks[count++];
obj.getNames().setText(myRs.getString("name").toUpperCase());
obj.getGender().setText(myRs.getString("sex").toUpperCase());
obj.getOwners().setText(myRs.getString("owner").toUpperCase());
}

Class DisplayBlock(这可能不是最好的名称,因此请随意重命名)应该具有用于​​将从数据库读取的数据写入的三个部分的 getter .

关于java - 我正在尝试找到一种比使用一堆 switch 语句更有效的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44750938/

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