如何在Java中使用select语句和join表填充jComboBox
各位 我有一个小任务要做,但我有点卡住了,基本上我在mySQL中有两个表,一个叫做“muscleGroup”和“muscleExercise”。第一个表本质上是不同练习的类别列表,包含两列“group_id”和“groupName”。然后我有了练习表,作为外键,我使用了“muscleGroup”表中的“group_id”列 我现在尝试做的是创建一个“muscleGroupComboBox”,其中包含“groupName”列的值,然后根据您选择的内容,我需要用属于此特定肌肉组的练习填充另一个comboBox 下面是我填充muscleGroup组合框的方法如何在Java中使用select语句和join表填充jComboBox,java,mysql,sql,select,join,Java,Mysql,Sql,Select,Join,各位 我有一个小任务要做,但我有点卡住了,基本上我在mySQL中有两个表,一个叫做“muscleGroup”和“muscleExercise”。第一个表本质上是不同练习的类别列表,包含两列“group_id”和“groupName”。然后我有了练习表,作为外键,我使用了“muscleGroup”表中的“group_id”列 我现在尝试做的是创建一个“muscleGroupComboBox”,其中包含“groupName”列的值,然后根据您选择的内容,我需要用属于此特定肌肉组的练习填充另一个com
private void populateMuscleGroupComboBox() {
String comboBoxQuery = "SELECT groupName FROM musclegroup";
ResultSet rs;
PreparedStatement statement;
try {
statement = con.prepareStatement(comboBoxQuery);
rs = statement.executeQuery();
while (rs.next()) {
String groupName = rs.getString("groupName");
groupComboBox1.addItem(groupName);
groupComboBox2.addItem(groupName);
groupComboBox3.addItem(groupName);
groupComboBox4.addItem(groupName);
groupComboBox5.addItem(groupName);
groupComboBox6.addItem(groupName);
}
} catch (SQLException ex) {
System.out.println(ex.toString());
}
}
这是我填充练习组合框的第二种方法
private void populateExerciseComboBox(String group) {
String comboBoxQuery = "SELECT muscleGroup.group_id, muscleGroup.groupName, muscleExercise.exerciseName FROM muscleGroup,muscleExercise WHERE muscleGroup.groupName =\"" + group + "\"";
ResultSet rs;
PreparedStatement statement;
try {
statement = con.prepareStatement(comboBoxQuery);
rs = statement.executeQuery();
while (rs.next()) {
String exerciseName = rs.getString("muscleExercise.exerciseName");
jComboBox7.addItem(exerciseName);
}
} catch (SQLException ex) {
System.out.println(ex.toString());
}
}
这里我称之为方法
populateMuscleGroupComboBox();
populateExerciseComboBox(groupComboBox1.getSelectedItem().toString());
现在这种工作,但我的Select语句有点问题,因为它返回了练习表中的所有练习,我知道这与WHERE子句有关,但我不确定如何使它工作
"SELECT muscleGroup.group_id, muscleGroup.groupName, muscleExercise.exerciseName FROM muscleGroup,muscleExercise WHERE muscleGroup.groupName =\"" + group + "\"";
欢迎提供帮助您没有限制muscleExercise和muscleGroup是同一组id的位置。。。请参见下面修改的
,其中谓词
“从muscleGroup中选择muscleGroup.group\u id、muscleGroup.groupName、muscleExercise.exerciseName,其中muscleGroup.groupName=\”“+group+”\”和muscleExercise.group\u id=muscleGroup.group\u id”代码>
或者。。。(首选)
实际上,您应该使用准备好的语句并对组进行参数化,而不仅仅是将其添加到查询中。
我相信你漏掉了一个引号<代码>\”“+group…
应该是“\”“+group…
不,不是这样。这与select语句的逻辑有关。无论如何,谢谢。是的,第二个解决方案按照我的预期工作,非常感谢;)
SELECT muscleGroup.group_id, muscleGroup.groupName, muscleExercise.exerciseName
FROM muscleGroup
JOIN muscleExercise USING(group_id)
WHERE muscleGroup.groupName =\"" + group + "\"