JdbcTemplate 没有 return 正确的结果集。为什么?
JdbcTemplate does not return a proper resultset. Why?
我正在与 Spring 一起制作讨论区。
我正在使用 JdbcTemplate
从数据库中填充用户的文章,但是 JdbcTemplate's
query
方法没有 return 正确的 ResultSet
.有趣的是,当我将 SQL 查询从代码复制并粘贴到 SQL Developer 时,return 得到了正确的结果。
显示 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 class,它的 JdbcTemplate
工作得很好。
当我 运行 我的代码时,list.size() return 是 0 而不是 4。它不会抛出任何异常。
这个问题的可能解决方案是什么?
下面这行看起来有误:
article.setViewNum(rs.getLong("VIEW_NAME"));
VIEW_NAME
应该是VIEW_NUM
,不是吗?
可能发生的情况是,当上面的行执行时,代码会由于结果集中的未知列而抛出 SQLException,这会终止处理并为您提供空结果。
我正在与 Spring 一起制作讨论区。
我正在使用 JdbcTemplate
从数据库中填充用户的文章,但是 JdbcTemplate's
query
方法没有 return 正确的 ResultSet
.有趣的是,当我将 SQL 查询从代码复制并粘贴到 SQL Developer 时,return 得到了正确的结果。
显示 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 class,它的 JdbcTemplate
工作得很好。
当我 运行 我的代码时,list.size() return 是 0 而不是 4。它不会抛出任何异常。
这个问题的可能解决方案是什么?
下面这行看起来有误:
article.setViewNum(rs.getLong("VIEW_NAME"));
VIEW_NAME
应该是VIEW_NUM
,不是吗?
可能发生的情况是,当上面的行执行时,代码会由于结果集中的未知列而抛出 SQLException,这会终止处理并为您提供空结果。