我用数据库记录填充了Javafx中的组合框。现在的问题是,当我通过选择组合框项目获得对象 Id 时。我正在尝试通过 Id 从数据库中检索整个对象,并将对象值设置为其他字段。 但是执行查询后,我收到了组合框选择的值 V1 或 V2 而不是对象
这是我的代码
tcVersion.getSelectionModel().selectedItemProperty().addListener((obs, oldVal, newVal)
int id=tcVersion.getSelectionModel().getSelectedItem().getId();
TestCase tCase=testCaseDao.getTestCase(id);
priorityCB.setValue(tCase.getTestCasepriority());
stateCB.setValue(tCase.getTestCaseState());
automatedStatusCB.setValue(tCase.getTsmAutomatStatus());
});
在这里,第一行为我提供了对象的ID,但在第二行中却没有检索到 数据库中的对象。有什么办法可以做到这一点。谢谢
TestCaseDao
public class TestCaseDao extends JdbcDaoSupport implements TestCaseDao {
public TestCase getTestCase(int tcId) {
String getTestCaseSql = "select * from cmatrix_testcase_mapping where tsm_key=?"
return getJdbcTemplate().queryForObject(getTestCaseSql, new RowMapper<TestCase>() {
@Override
public TestCase mapRow(ResultSet rs, int rownumber) throws SQLException {
TestCase testCase = new TestCase();
try {
testCase.setTestCaseId(rs.getInt("tsm_key"));
testCase.setArea_key(rs.getInt("tsm_apa_key"));
testCase.setTestCaseName(rs.getString("tsm_name"));
testCase.setParentKey(rs.getString("tsm_parent_key"));
testCase.setTsmAutomatStatus(rs.getString("tsm_automat_status"));
testCase.setTestCasepriority(rs.getString("tsm_priority"));
testCase.setTestCaseState(rs.getString("tsm_state"));
testCase.setTestType(rs.getString("tsm_test_type"));
} catch (Exception e) {
System.out.println(e.getMessage());
}
return testCase;
}
}, tcId);
}
}