问题描述
正在做一个web练手项目,使用mysql数据库,和tomcat的连接池。在连接数据库读取数据时,数据库中有多条记录,但却只能取出一条,而直接使用navicat for mysql直接运行查询语句却能读取出所有数据,求指教啊。 代码如下:public List<Article> findAll(){List<Article> result = new ArrayList<Article>();Connection conn = null;PreparedStatement pStatement = null;ResultSet rSet = null;try { //DBUtil:定义好了的连接数据库的工具类,conn = DBUtil.getConnection();pStatement = conn.prepareStatement("select * from article order by create_dt desc");Article article = null;rSet = pStatement.executeQuery();if (rSet.next()) {article = new Article();article.setId(rSet.getInt("id"));//读取数据相关操作 article.setTitle(rSet.getString("title"));System.out.println("add one article");//程序运行时只打印了一次result.add(article);}return result;} catch (Exception e) {e.printStackTrace();} finally { //关闭连接相关操作DBUtil.closeResultSet(rSet);DBUtil.closePreparedStatement(pStatement);DBUtil.closeConnection(conn);}return null;}
解决方案
if (rSet.next()) 这里换成: while (rSet.next())
解决方案二:
楼上正解。。