写之前,先告戒一下自己......写代码一定要细心,自己写的即使是非常简单的地方也要细心,不能自我感觉太良好,那往往可能会有些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只有一行的错误......

最新文章

  1. ECSHOP 商品字段增加新字段的方法
  2. PHPCMS与UCenter整合要点
  3. java-工具类-读取配置文件
  4. 今天第一节PS课
  5. 超链接实现post方式提交
  6. 技能获取与C语言学习情况
  7. 例行性工作排程 (crontab)
  8. hadoop中集群节点ID不一致( java.io.IOException: Incompatible clusterIDs )
  9. 在Docker中体验数据库之Mongodb
  10. pycharm(Python编辑器)的激活
  11. Python_queue单项队列
  12. 小P的字符串
  13. CRM项目自定义的知识点
  14. C#实现Zip压缩解压实例
  15. IBM websphere MQ使用说明
  16. 前端基础之CSS快速入门
  17. Django分页类的封装
  18. lamp字符编码的转换规则
  19. 解决 pip 安装opendr包 卡住的问题
  20. 聊聊、Java 命令 第二篇

热门文章

  1. 用 boost::multi_index 管理玩家
  2. 【算法导论】单源最短路径之Dijkstra算法
  3. Mahout 系列之--canopy 算法
  4. volley请求原理
  5. 《java入门第一季》之面向对象(private关键字与封装概念的初探)
  6. 自定义view入门
  7. studio grandle渠道打包
  8. web报表工具finereport常用函数的用法总结(数组函数)
  9. javascript语言扩展:可迭代对象(2)
  10. 使用jdk8 stream 统计单词数