如何修复不正确的结果大小:预期 1,实际 0' thouhj 我正在查询单个对象?



我想打开一个新的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);
    }

(表名称我从以前的jsp中得到,我列出了整个表,所以很好(

请问,你能说出我的错误在哪里吗?提前感谢!

以防它可以帮助任何人更改 selectOne 的方法以使用您的 RowMapper: @Override public Spravochnik selectOne(int spravochnikId, int rowId( { return jdbctemplate.queryForObject(getQueryDinamicTable(SQL_SELECT_ROW, getSpravNameAtId(spravochnikId((, new SpravochnikRowMapper((, rowId(; }

最新更新