这段时间做java项目,在操作数据库的时候,犯了一个错误,请看下面的程序

.......                        //前面连接数据库方面的省略

ResultSet  result = statement.executeQuery(strSQL);

//开始读取数据并写到List中

if (result.next()) {

//有数据

result.first();

while (result.next()) {

lstData.add(result.getString("columname"));

}

}

结果一看数据库,少了一条数据,问题出在哪里呢?

一看帮助,原来是next的问题,在第一次执行result.next()之前,result并不指向第一行数据,执行以后才指向第一条数据,如果第一条数据我们说他的索引是0的话,那么第一次执行result.next()之前,可以理解成result指向的索引为-1(个人意见),而first()方法同样也是将result指向第一行数据,所以在后面执行while循环的时候,数据就从第二行开始取了。于是上面的程序可改成

if (result.next()) {

//有数据

result.first();

lstData.add(result.getString("columname"));

while (result.next()) {

lstData.add(result.getString("columname"));

}

}

这样就没有错误了,但是这样写总感觉有点累赘,于是再改成下面的情况

while (result.next()) {

lstData.add(result.getString("columname"));

}

//到这里再判断数据有没有

if (lstData.size() > 0) {

//有数据

} else {

//没有数据

}

结合上面两个方法,其实各有适合的场合,如果只是判断数据有没有 直接用

if (result.next()) {

//有数据

}

就可以了,如果程序里面要取出数据并处理 那么最后一种方法应该更好一些吧。

posted on

2006-06-20 12:36

gigikouyi

阅读(7942)

评论(2)

编辑

收藏

java set中取数据_Java中取数据库用的ResultSet问题相关推荐

  1. java 爬取数据_JAVA爬取天天基金网数据

    爬取基金历史记录代码: 1.首先要自己定义几个参数:基金编码,页数,每页显示条数 开始时间结束时间等 (我这直接写的静态方法使用的 大家可以改成Test方法自行进行测试) /*** httClient ...

  2. java循环删除集合数据_java中循环的几种方式以及删除集合中的指定数据

    一.for //for循环中删除数据 -- 方法有漏洞 private static void deleteAtFor() { ArrayList array = new ArrayList<& ...

  3. mfc从文件中读取数据_Java中Transient关键字,一点课堂(多岸学院)

    Java中Transient关键字 虽然自己最熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,今天做笔试题时发现有一题是关于这个的 ...

  4. java中json数据_Java中json的使用 解析json数据

    1.java提取json嵌套多层的数据 json数据为: { "res": [{ "name": "0", "text" ...

  5. java request get json数据_Java中,获取request中json数据

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.io.IOException; import javax.servlet.http.HttpServletRequest; /** ...

  6. java中json数据_java中的JSON对象的使用

    申明:没工作之前都没听过JSON,可能是自己太菜了.可能在前台AJAX接触到JSON,这几天要求在纯java的编程中,返回JSON字符串形式. 网上有两种解析JSON对象的jar包:JSON-lib. ...

  7. java 从excel中读取数据_java中怎样从Excel中读写数据

    展开全部 public class ReadExcel001 { public static void main(String[] args) { readXml("D:/test.xlsx ...

  8. java从mysql中查数据_java怎么从数据库中查询数据并输出

    try { //这里的是MYSQL 举例 //加载驱动 Class.forName("com.mysql.jdbc.Driver"); //创建数据库连接 Connection c ...

  9. java输入多个数据_Java中怎么读入一行输入空格隔开的多个数据

    展开全部 import java.util.Scanner; public class ReadData{ public static void main(String[] args) { ReadD ...

最新文章

  1. 仿FLASH动感十足鼠标滑过放大的菜单代码
  2. WebRTC的优缺点
  3. Linux学习笔记6
  4. MyBatisPlus怎么忽略映射字段
  5. java泛型程序设计——无限定通配符+通配符捕获
  6. tensorflow 小于_坐姿不对,屏幕就变模糊!教你用TensorFlow做一款“隐形背背佳”...
  7. 无监督学习 | KMeans与KMeans++原理
  8. 奔驰宝马路虎等齐降价 最高降幅达8.5万!
  9. 构造函数与析构函数的重载及浅拷贝和深拷贝
  10. MTK和高通展讯他们平台的主要区别是什么
  11. Python学习:Mysql(二)
  12. 4月27 统计学——卡方检验和卡方分布
  13. 微信小程序卡券java_微信小程序领取卡券(java)
  14. 试验设计——均匀试验设计·好格子点法
  15. Unity 置顶点击的对象
  16. 删除excel中的分页符
  17. CIMISS数据获取流程
  18. 用Java实现简单画板
  19. java正则校验qq邮箱_检测邮箱是否是QQ邮箱并给出提示_正则实例
  20. Aurora 8B/10B光口通信

热门文章

  1. Python的安装路径
  2. 使用Mockito对类成员变量进行Mock
  3. 【多题合集】【loliの模拟赛】排列组合大套餐
  4. 7.边缘检测:2D运算——回顾、高斯滤波器2D的导数、Sigma对导数的影响_1
  5. 如何使用反意疑问句来确认请求_24
  6. PostgreSQL进程结构
  7. sql如何取前几行_10 个不为人知的 SQL 技巧
  8. MFC中将窗口最小化到系统托盘和还原
  9. 一个自己实现的简单的智能指针模板类
  10. oracle timestamp计算两分钟前_阿里数据库真的超过Oracle了么?