首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring没有这样的列异常

Spring没有这样的列异常
EN

Stack Overflow用户
提问于 2016-08-25 07:24:54
回答 1查看 657关注 0票数 1

我正在编写Spring / Boot应用程序来将数据从informix提取到java数据对象,但我找不到java.sql.SQLException:没有这样的列名问题。

这是一种方法:

代码语言:javascript
运行
复制
    public UserDo getUserAddress(UserDo item) {
    try {
        myJdbcTemplate.queryForObject(getUserAddressQuery, new RowMapper<UserDo>() {
            @Override
            public UserDo mapRow(ResultSet rs, int arg1) throws SQLException {
                try {
                    item.setAddressLine1(rs.getString("cad_add_line_1")); 
                    item.setAddressLine2(rs.getString("cad_add_line_2" + "cad_add_line_3" + "cad_add_line_4"));
                    item.setCity(rs.getString("cad_city_name"));
                    item.setState(rs.getString("cad_ste_prv_cd"));
                    item.setZip(rs.getString("cad_postal_code" + "cad_postal_cd_4"));
                    item.setCountry(rs.getString("cad_country_code"));
                } catch (SQLException sqle){
                    logger.error(sqle.getMessage(), sqle);
                }
                return item;
            }
        }, item.getUserId());
    } catch (EmptyResultDataAccessException erdae) {
        logger.error(erdae.getMessage(), erdae);
    } catch (IncorrectResultSizeDataAccessException irsdae) {
        logger.error(irsdae.getMessage(), irsdae);
    }
    return item;
}

这是JdbcTemplate正在执行的查询

代码语言:javascript
运行
复制
    private final String getUserAddressQuery = "select cad_add_line_1, cad_add_line_2, cad_add_line_3, cad_add_line_4, cad_city_name, cad_ste_prv_cd, cad_postal_code, cad_postal_cd_4, cad_country_code, cad_county_parrish "
        + "from user_address "
        + "where user_id = ? "
        + "and user_type_code = '03' ";

表列值都是CHAR类型,列大小从335不等。

数据对象属性都是字符串类型。

这个方法是从我的ItemProcessor调用的。

当我使用调试器时,ResultSet对象似乎为空。我认为问题是从informix CHAR读取到String。这是因为,除了从informix INTEGER读取Java int之外,另一种完全相同的方法工作得很好。

请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-25 07:27:13

你的问题是:

代码语言:javascript
运行
复制
rs.getString("cad_add_line_2" + "cad_add_line_3" + "cad_add_line_4")

这将汇编成:

代码语言:javascript
运行
复制
rs.getString("cad_add_line_2cad_add_line_3cad_add_line_4")

我强烈怀疑没有这样的专栏。

你的意思是:

代码语言:javascript
运行
复制
rs.getString("cad_add_line_2")
+ rs.getString("cad_add_line_3")
+ rs.getString("cad_add_line_4")

你在这里也有同样的问题:

代码语言:javascript
运行
复制
rs.getString("cad_postal_code" + "cad_postal_cd_4")
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39139106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档