java set中取数据_Java中取数据库用的ResultSet问题
这段时间做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问题相关推荐
- java 爬取数据_JAVA爬取天天基金网数据
爬取基金历史记录代码: 1.首先要自己定义几个参数:基金编码,页数,每页显示条数 开始时间结束时间等 (我这直接写的静态方法使用的 大家可以改成Test方法自行进行测试) /*** httClient ...
- java循环删除集合数据_java中循环的几种方式以及删除集合中的指定数据
一.for //for循环中删除数据 -- 方法有漏洞 private static void deleteAtFor() { ArrayList array = new ArrayList<& ...
- mfc从文件中读取数据_Java中Transient关键字,一点课堂(多岸学院)
Java中Transient关键字 虽然自己最熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,今天做笔试题时发现有一题是关于这个的 ...
- java中json数据_Java中json的使用 解析json数据
1.java提取json嵌套多层的数据 json数据为: { "res": [{ "name": "0", "text" ...
- java request get json数据_Java中,获取request中json数据
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.io.IOException; import javax.servlet.http.HttpServletRequest; /** ...
- java中json数据_java中的JSON对象的使用
申明:没工作之前都没听过JSON,可能是自己太菜了.可能在前台AJAX接触到JSON,这几天要求在纯java的编程中,返回JSON字符串形式. 网上有两种解析JSON对象的jar包:JSON-lib. ...
- java 从excel中读取数据_java中怎样从Excel中读写数据
展开全部 public class ReadExcel001 { public static void main(String[] args) { readXml("D:/test.xlsx ...
- java从mysql中查数据_java怎么从数据库中查询数据并输出
try { //这里的是MYSQL 举例 //加载驱动 Class.forName("com.mysql.jdbc.Driver"); //创建数据库连接 Connection c ...
- java输入多个数据_Java中怎么读入一行输入空格隔开的多个数据
展开全部 import java.util.Scanner; public class ReadData{ public static void main(String[] args) { ReadD ...
最新文章
- 仿FLASH动感十足鼠标滑过放大的菜单代码
- WebRTC的优缺点
- Linux学习笔记6
- MyBatisPlus怎么忽略映射字段
- java泛型程序设计——无限定通配符+通配符捕获
- tensorflow 小于_坐姿不对,屏幕就变模糊!教你用TensorFlow做一款“隐形背背佳”...
- 无监督学习 | KMeans与KMeans++原理
- 奔驰宝马路虎等齐降价 最高降幅达8.5万!
- 构造函数与析构函数的重载及浅拷贝和深拷贝
- MTK和高通展讯他们平台的主要区别是什么
- Python学习:Mysql(二)
- 4月27 统计学——卡方检验和卡方分布
- 微信小程序卡券java_微信小程序领取卡券(java)
- 试验设计——均匀试验设计·好格子点法
- Unity 置顶点击的对象
- 删除excel中的分页符
- CIMISS数据获取流程
- 用Java实现简单画板
- java正则校验qq邮箱_检测邮箱是否是QQ邮箱并给出提示_正则实例
- Aurora 8B/10B光口通信