我想打开一个新的JSP页面,其中表的只有一行。但是当我运行它时,它显示了错误的错误大小。我只查询一个对象...(我正在动态选择表)
private final String SQL_RPL_TABLE_NAME = "?tableName?";
private final String SQL_SELECT_NAME_SPRAV = "SELECT sprav_name FROM sprav_of_spravs WHERE id = ?";
private final String SQL_SELECT_ROW = "select * from " + SQL_RPL_TABLE_NAME + " where id = ?";
@Override
public Spravochnik selectOne(int spravochnikId, int rowId) {
return jdbctemplate.queryForObject(getQueryDinamicTable(SQL_SELECT_ROW, getSpravNameAtId(spravochnikId)),
new Object[] { spravochnikId }, Spravochnik.class);
}
protected String getSpravNameAtId(int spravochnikId) {
return jdbctemplate.queryForObject(SQL_SELECT_NAME_SPRAV, new Object[] { spravochnikId }, String.class);
}
protected String getQueryDinamicTable(String query, String tableName) {
return query.replace(SQL_RPL_TABLE_NAME, tableName).intern();
}
服务
@Override
public Spravochnik selectOne(String id) {
return spravochnikDao.selectOne(getSpravId(id), getRowId(id) );
}
protected int getSpravId(String id) {
return Integer.valueOf(id.substring(0, 3));
}
protected int getRowId(String id) {
return Integer.valueOf(id);
}
和控制器
@RequestMapping(value = "/edit", method = { RequestMethod.POST, RequestMethod.GET })
public ModelAndView edit(@RequestParam("id") String id, @RequestParam("tableName") String tableName,
ModelMap model) {
Spravochnik sprav = spravochnikService.selectOne(id);
model.addAttribute("tableName", tableName);
model.addAttribute("sprav", sprav);
return new ModelAndView("edit", model);
}
(tableName是我从上一个jsp中获得的,我在那里列出了整个表,所以很好)
请告诉我我的错误在哪里?预先感谢!
答案 0 :(得分:0)
以防它可能帮助任何人更改selectOne的方法以使用您的RowMapper:@Override 公共Spravochnik selectOne(int spravochnikId,int rowId){ 返回jdbctemplate.queryForObject(getQueryDinamicTable(SQL_SELECT_ROW,getSpravNameAtId(spravochnikId)), 新的SpravochnikRowMapper(),rowId); }