欢迎各界计算机爱好者加入,弘扬极客精神!

java中,数据库返回一个空的结果集,并赋给变量去调用构造函数,生成的对象是null还是什么?

0 喜欢 0 不喜欢

ResultSet rs= pstmt.executeQuery();//数据库返回一个结果集,现在假设select的是

                                     数据库中没有的数据,那么结果集为空

    while (rs.next())

    {

        String str = rs.getString("Name");//此时str应该是null

        int id = rs.getInt("Id");     //id0

        A a= new A(id,str);  //调用构造函数(定义见第二段代码),那a是什么?是

                               null?此构造器还会被调用吗?a这个对象会生成吗?

public final class A   //这个是A类的定义,成员变量和构造函数

{

private int id;

private String name;

 

public A(int Id,String Word)

  {

    this.id = Id;

    this.name = Word;

  }

}

我现在项目中要通过a这个对象来判断数据库返回的是否为空集,请问该如何判断?由此引出了上述问题(具体问题可以看代码段的注释)

最新提问 7月 10, 2016 分类:WEB开发 | 用户: biubiu~ (4,096 分)  

10 个回答

0 喜欢 0 不喜欢
 
已采纳

数据库空集的话,rs.next()返回falsewhile里面不执行。

话说不知道的话,连下空的数据表试一下也比打那么多字在这里发个问题解决问题要快速的多的吧?

 

 

最新回答 7月 10, 2016 用户: 月汐 (6,140 分)  
采纳于 8月 31, 2016 用户:biubiu~
0 喜欢 0 不喜欢

我觉得你问的问题并没有彻底解决,还是建议题主关注一下 new 关键字做的事情:

  1. 在堆内存开辟空间,以存储 A 的实例
  2. 调用 A 的构造方法
  3. 在虚拟机栈上面开辟地址,将地址指向刚刚开辟的堆空间

最终 A a = new A(...) 得到就是一个栈引用,这个栈引用不会为空,除非你的 JVM 挂了...

最新回答 7月 10, 2016 用户: wyj557 (3,674 分)  
0 喜欢 0 不喜欢

我觉得你应该关注下,new关键字

  1. 在堆内存开辟空间,以存储 A 的实例

  2. 调用 A 的构造方法

  3. 在虚拟机栈上面开辟地址,将地址指向刚刚开辟的堆空间

最终 A a = new A(...) 得到就是一个栈引用,这个栈引用不会为空,除非你的 JVM 挂了...

最新回答 7月 11, 2016 用户: junglely (6,350 分)  
0 喜欢 0 不喜欢
直接谷歌解决问题比在这解决的快多了吧
最新回答 7月 13, 2016 用户: 字母大人 (1,172 分)  
1 喜欢 0 不喜欢
0 喜欢 0 不喜欢

 他的引用变量是的对象的地址,赋空的话,引用变量为空了,可是对象仍然是存在的
 

最新回答 8月 6, 2016 用户: 凌波微步 (7,050 分)  
...