写之前,先告戒一下自己......写代码一定要细心,自己写的即使是非常简单的地方也要细心,不能自我感觉太良好,那往往可能会有些bug在等着你......

  注意事项:

  1、当你为了查看数据库中是否存在某条记录时,比如查询表中是否有某账号名,有就返回前台一个“该账号已注册”的消息。诸如此类的单查询时,可以这么写:

  

       if(rs.next()){
user.setName(rs.getObject("name").toString());
user.setPwd(rs.getObject("password").toString());
user.setPhone(rs.getObject("phone").toString());
user.setSex(rs.getObject("sex").toString());
user.setBirthday(rs.getObject("birthday").toString());
user.setAdress(rs.getObject("adress").toString());
user.setEmail(rs.getObject("email").toString());
} else{
return null;
}

这里用了“if”,是可以的,因为就是为了查看是否有这么个User,有就返回信息,没有就null。但是,如果想要返回的不止是一个User,而是我想查看所有的User,或者加上某些条件。总之想要查询得到一个集合,然后存入List或者Map,记住!用while,而不是if。可能大多数人不会跟我一样傻......写在这里提醒自己一下吧,要是有缘人相见,但愿对你有所帮助。

  2、除了上一种错误会导致ResultSet只返回一行,貌似还有一种情况,我看到网上有人提到这种代码:

  

       Product product = new Product();
while(rs.next()){
product.setName(rs.getObject("name").toString());
product.setType(rs.getObject("type").toString());
product.setPrice(rs.getInt("price"));
product.setStock(rs.getInt("stock"));
product.setSell(rs.getInt("sell"));
product.setImgurl(rs.getObject("imgurl").toString());
plist.add(product);
}

  这里,当你把这个Product对象放在while循环外面是错的,但是并不会只返回一条记录,而是会返回很多条一样的记录。这是因为只有一个product对象在不停的被add在list里面,但是经过实践检验,我发现重复add的都是表中最后一条记录:

  

比如此表,执行查询add到list之后:

  

这在我的理解中是因为第一个product在add到List之后,第二个product(其实还是第一个product,因为就一个product对象)被赋予了新的属性,同时第一个product的属性也会被刷新覆盖了。以此类推,直到最后一个product的属性被重新赋予,之前所有的List记录都会被刷新变为最后一次所赋予的属性值。不知道原理是不是这样,我就先这么理解了......

  所以,这么写的代码并不会造成ResultSet只有一行的错误......

ResultSet只返回一行数据的原因的更多相关文章

  1. NestedScrollView嵌套ListView时只显示一行的解决方法

    在使用CoordinatorLayout和AppBarLayout实现嵌套滑动的时候,出现listview没有嵌套滑动: 如果要实现嵌套滑动,则需要添加NestedScrollView,但是结果发现l ...

  2. 如何让webapi只返回json格式数据

    最近脑子不好用,总记不住事,以前搞过让webapi只返回json格式的数据,今天有人问我又突然想不起了,后来总结一下,备忘一下,大概有下面几种处理方式 1.在WebApiConfig类的Registe ...

  3. SQL中删除重复的行(重复数据),只保留一行 转

    方法一:使用在T-SQL的编程中 分配一个列号码,以COL1,COL2组合来分区排序,删除DATABASE重复的行(重复数据),只保留一行 // COL1,COL2是数据库DATABASE的栏位 de ...

  4. mybatis报错:查询一对多或多对多时只返回一条数据的问题

    问题: 使用映射文件实现查询一对多或多对多时只返回一条数据问题 解决方法: 导致这种情况出现的问题是因为两个表中的主键是一样所以出现了数据覆盖问题. 解决方式一:修改数据库表中的主键(这种方法比较麻烦 ...

  5. MySQL 笔记整理(19) --为什么我只查一行的语句,也执行这么慢?

    笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 19) --为什么我只查一行的语句,也执行这么慢? 需要说明一下,如果M ...

  6. sed 's/AA/BB/' file # 将文件中的AA替换成BB,只替换一行中第一次出现的AA,替换后的结果输出到屏幕 sed 's/AA/BB/g' file # 将文件中的所有AA都替换成BB,替换后的结果输出到屏幕

    生信人的自我修养:Linux命令速查手册 简佐义 ​ 四川大学 生物信息学硕士 科学求真 赢 10 万奖金 · 院士面对面 209 人赞同了该文章 许多人做生物信息学,要么不重视Linux,要么不知道 ...

  7. ASP.net jQuery调用webservice返回json数据的一些问题

    之前寒假时,试着使用jQuery写了几个异步请求demo, 但是那样是使用的webform普通页面,一般应该是用 webservice 居多. 最近写后台管理时,想用异步来实现一些信息的展示和修改, ...

  8. 为什么返回的数据前面有callback? ashx/json.ashx?的后面加 callback=? 起什么作用 js url?callback=xxx xxx的介绍 ajax 跨域请求时url参数添加callback=?会实现跨域问题

    为什么返回的数据前面有callback?   这是一个同学出现的问题,问到了我. 应该是这样的: 但问题是这样的: 我看了所请求的格式和后台要求的也是相同的.而且我也是这种做法,为什么他的就不行呢? ...

  9. mybatis一对多查询resultMap只返回了一条记录

    问题描述:因为领导的一个需求,需要用到使用resultMap,很久没使用了,结果就除了点意外.就记录下这个问题 准备两个类:author(作者)和book(书),数据库创建对应的author-> ...

随机推荐

  1. MySQL学习笔记_7_MySQL常用内置函数

    MySQL常用内置函数 说明: 1)可以用在SELECT/UPDATE/DELETE中,及where,orderby,having中 2)在函数里将字段名作为参数,变量的值就是字段所对应的每一行的值. ...

  2. javascript语法之流程控制语句

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. kettle文件自动化部署(shell脚本执行):命令行参数传入

    shell脚本中调用kitchen 和 pan去执行,job和transformation文件.分 windows和 dos系统两种. 举个简单的小例子 shell脚本: export JAVA_HO ...

  4. 命令行界面的C/S聊天室应用 (Socket多线程实现)

    命令行界面即在Eclipe控制台输入数据. 服务器端包含多个线程,每个Socket对应一条线程,该线程负责读取对应输入流的数据(从客户端发送过来的数据),并将读到的数据向每个Socket输出流发送一遍 ...

  5. 【Android 应用开发】Android - 按钮组件详解

    总结了Android中常用的按钮用法 示例源码下载地址 : -- CSDN :  http://download.csdn.net/detail/han1202012/6852091 -- GitHu ...

  6. OAF中的MASTER-DETAIL关系

    在日常开发中,我们经常会遇到头行结构,并且要求打开界面,行是隐藏的,点击头上的"显示"按钮,才要求头对应的行信息全部显示出来,这样,我们就用到了Master-Detail结构. 下 ...

  7. Android实训案例(五)——四大组件之一ContentProvider的使用,通讯录的实现以及ListView的优化

    Android实训案例(五)--四大组件之一ContentProvider的使用,通讯录的实现 Android四大组件是啥这里就不用多说了,看图吧,他们之间通过intent通讯 我们后续也会一一的为大 ...

  8. 如何设置静态IP

    首先在CMD命令行ipconfig查看临时分配的IP地址: 然后打开我的"网络"--->"本地连接"--->IPv4--->属性 电信DNS劫 ...

  9. 用Xstream时候遇到的两个小异常

    第一个 com.thoughtworks.xstream.converters.ConversionException: Cannot construct ClassXXX as it does no ...

  10. leetcode(58)-Range Sum Query - Immutable

    题目: Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclu ...