java - 如何修复 '' 查询单个对象时结果大小不正确 : expected 1, 实际 0' thouhj I' m ?

标签 java database spring jsp

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

和 Controller

    @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中获取的,我在其中列出了整个表,所以没问题)

请问您能告诉我我的错误在哪里吗?提前致谢!

最佳答案

如果它可以帮助任何人更改 selectOne 的方法以使用您的 RowMapper:@Override 公共(public) Spravochnik selectOne(int spravochnikId, int rowId) { 返回 jdbctemplate.queryForObject(getQueryDinamicTable(SQL_SELECT_ROW, getSpravNameAtId(spravochnikId)), 新的 SpravochnikRowMapper(), rowId); }

关于java - 如何修复 '' 查询单个对象时结果大小不正确 : expected 1, 实际 0' thouhj I' m ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55773176/

相关文章:

java - 将任何格式的给定字符串日期转换为 java.sql.Timestamp 的通用方法

java - 命名空间声明的 XPath 解析

sql - MySQL 语法 LIMIT x, y 的 T-SQL 等价物是什么?

mysql - 创建存储过程 MySQL 时出错

java - 使用 sql 连接 swings

spring - 在 Spring Boot 中理解 Redis

spring - 为什么 beans 会被拒绝以及未识别出 URL 路径意味着什么?

Spring Data JPA底层机制无实现

java - android studio中逐字节动态音频处理

java - AffdexMe,Android,LicenseException : could not open license file