- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大家。
我有一项小任务要做,但我有点卡住了,基本上我在 mySQL 中有两个表,一个名为“muscleGroup”和“muscleExercise”。第一个表本质上是不同练习的类别列表,包含两列“group_id”和“groupName”。比我有练习表,并且我使用“muscleGroup”表中的“group_id”列作为外键。
我现在尝试做的是拥有一个“muscleGroupComboBox”,其中包含“groupName”列的值,并且根据您选择的内容,我需要使用属于该特定组的练习填充另一个组合框肌肉。
这是我填充muscleGroup组合框的方法。
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());
}
}
这是我填充练习 ComboBox 的第二种方法。
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...请参阅下面修改后的WHERE
谓词。
“从muscleGroup、muscleExercise中选择muscleGroup.group_id、muscleGroup.groupName、muscleExercise.exerciseName,其中muscleGroup.groupName =\””+ group +“\”和muscleExercise.group_id =muscleGroup.group_id”;
或者...(首选)
SELECT muscleGroup.group_id, muscleGroup.groupName, muscleExercise.exerciseName
FROM muscleGroup
JOIN muscleExercise USING(group_id)
WHERE muscleGroup.groupName =\"" + group + "\"
实际上,您应该使用准备好的语句并参数化组,而不是仅仅将其添加到查询中。 How does Java's PreparedStatement work?
关于java - 如何在 Java 中使用 select 语句和连接表填充 jComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22792711/
我是一名优秀的程序员,十分优秀!