为什么数据库中有多条数据,单只能取出一条

问题描述

正在做一个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())
解决方案二:
楼上正解。。

时间: 2024-11-04 19:06:16

为什么数据库中有多条数据,单只能取出一条的相关文章

java代码-请教各位大神,遍历数据库 为什么只有一条数据,里面明明有两条数据,哪位大神帮忙看看

问题描述 请教各位大神,遍历数据库 为什么只有一条数据,里面明明有两条数据,哪位大神帮忙看看 <% Connection con; Statement stmt; ResultSet rs; Class.forName("com.mysql.jdbc.Driver"); DriverManager.registerDriver(new com.mysql.jdbc.Driver()); String DbConn = "jdbc:mysql://localhost/te

mysql-往Mysql表格里保存数据,只能保存一条,新的不断覆盖旧的,怎么处理?

问题描述 往Mysql表格里保存数据,只能保存一条,新的不断覆盖旧的,怎么处理? 图形软件用的是Navicat for MySQL,保存数据只能保存一条 解决方案 用update试试看看??? 解决方案二: 楼主也是萌萌哒,哈哈,注意区别主键,还有唯一性约束性条件,祝成功.哈哈 解决方案三: 估计可能是主键的问题吧., 解决方案四: 估计是你创建的表中没有主码,使用update随然能够避免插入重复数据的问题,却是治标不治本. 解决方案五: 你的username和pwd有没有设置联合唯一键呢?sa

请问往数据库添加一条数据,但是有一条字段总是添加不上去,是什么情况

问题描述 请问往数据库添加一条数据,但是有一条字段总是添加不上去,是什么情况 public String addTransOnOffTime() throws Exception { if (transOnOffTime == null) { response.getWriter().write(jsonMapper.toJson(FAIL)); } else { // transOnOffTime.getTransBasicConfig().setTransIdCard(transIdCard

极限挑战—C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)

原文:极限挑战-C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)     实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间.     本实验中所用到工具为VS2008和SQL SERVER 2000.SQL SERVER 2008,分别使用5中方法将100万条数据导入SQL 2000与SQL 2008中,实验环境是DELL 2850双2.0GCPU,2G内存的服务器.感兴趣的朋友可以下载源代码自己

用hibernate在修改一条数据时没有覆盖旧的记录,反而添加了一条新纪录,怎么回事?

问题描述 用hibernate在修改一条数据时没有覆盖旧的记录,反而添加了一条新纪录,怎么回事? 我用的是mysql的数据库, jsp <%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE HTML> <div class="fo

Jsp实现页面forEach循环遍历多条数据的显示和后台对应数据的获取(strurs1)实现

使用jstl标签和form动态的页面数据显示操作获取! html代码: <body> <center> <div id="header"></div> <div id="divuser"> <input id="contextPath" type="hidden" value="${pageContext.request.contextPath}&qu

asp.net 怎么让这些从数据库读出来的数据相加并显示到充值金额里

问题描述 asp.net 怎么让这些从数据库读出来的数据相加并显示到充值金额里 我选择一条数据,就显示一条数据的总运费,选择两条就显示两条数据相加的总运费.我不知道这个怎么做,请知道的大神指导一下,有详细代码最好,或者类似的也可以 解决方案 两种方式,第一每次遍历所有数据得到合计,第二,如果每次都是自己添加,那么从第一次开始,记录一个值, 下次就把新值加上旧值得到合计 解决方案二: 你添加的界面在哪里?另外既然你的运费是算出来的,为什么要用文本框? 在你的添加的界面上更新总价就是了. 解决方案三

oracle-怎么插入多条数据。各路大神!

问题描述 怎么插入多条数据.各路大神! 像发邮件那样,多个用户名,用:隔开,存同一条信息.怎么插入到数据库中啊!各路大神. 解决方案 1.如果你用程序往里存的话,比较简单,将这些用户按照";"截取,然后批量存入数据库,或者单条循环存入数据库. 2.如果直接写sql语句往数据库存的话,可以借助一下notePad软件功能: 1)在在文本上写一条插入语句,如:insert into table(userName, content, createTime) values('', '测试', '

mongodb java 使用$insert 多出一条数据

问题描述 mongodb java 使用$insert 多出一条数据 使用update 更新一条数据进去的时候原数据没有被覆盖依然保存.代码如下 DBObject key = new BasicDBObject(); key.put("phone", phone); key.put("phoneCode", phoneCode); BasicDBObject updates = new BasicDBObject(); BasicDBObject doc = new