【问题标题】:JdbcTemplate does not return a proper resultset. Why?JdbcTemplate 不返回正确的结果集。为什么?
【发布时间】:2020-10-07 01:17:34
【问题描述】:

我正在用 Spring 做一个讨论板。

我正在使用JdbcTemplate 从数据库中填充用户的文章,但是JdbcTemplate's query 方法没有返回正确的ResultSet。有趣的是,当我将 SQL 查询从代码复制并粘贴到 SQL Developer 时,它会返回正确的结果。

显示 SQL 查询有效的照片,

Jdbc模板代码

public class ForumDao {
    private JdbcTemplate template;
    
    
    public ForumDao(DataSource dataSource) {
        template = new JdbcTemplate(dataSource);
    }
    
    public Collection<ForumArticle> getArticleList(){
        Collection<ForumArticle> list = template.query("SELECT ARTICLE_ID, TITLE, NAME, VIEW_NUM, CREATED_DATE FROM MEMBER, FORUM WHERE MEMBER.ID = FORUM.MEMBER_ID", 
                new RowMapper<ForumArticle>() {

                    @Override
                    public ForumArticle mapRow(ResultSet rs, int rowNum) throws SQLException {
                        
                        ForumArticle article = new ForumArticle();
                        System.out.println("completeeeee--------------------------------------------------------------------");
                        article.setArticleID(rs.getInt("ARTICLE_ID"));
                        article.setTitle(rs.getString("TITLE"));
                        article.setName(rs.getString("NAME"));
                        article.setViewNum(rs.getLong("VIEW_NAME"));
                        article.setCreatedDate(rs.getTimestamp("CREATED_DATE").toLocalDateTime());
                        
                        return article;
                    }           

        });
        System.out.println("-dddddddddddddddddddddddddddddddddddd " + list.size());
        return list;
    }
}

所有配置设置都已正确完成,我正在使用 Oracle DB。我有另一个用于用户数据的 DAO 类,它的 JdbcTemplate 运行良好。

当我运行我的代码时,list.size() 返回 0 而不是 4。它不会抛出任何异常。

这个问题有什么可能的解决方案?

【问题讨论】:

    标签: java spring oracle jdbctemplate


    【解决方案1】:

    下面这行看起来不对:

    article.setViewNum(rs.getLong("VIEW_NAME"));
    

    VIEW_NAME 应该是VIEW_NUM,不是吗?

    可能发生的情况是,当上述行执行时,由于结果集中存在未知列,代码会抛出 SQLException,这会终止处理并给您一个空结果。

    【讨论】:

    • 但是有线的事情是问题说它不会抛出任何异常。
    • 感谢您的帮助。问题是未提交的数据库...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    相关资源
    最近更新 更多