jdbc - java中,数据库返回一个空的结果集,并赋给变量去调用构造函数,生成的对象是null还是什么?
PHP中文网
PHP中文网 2017-04-18 09:34:25
0
3
492
ResultSet rs= pstmt.executeQuery();//数据库返回一个结果集,现在假设select的是
                                     数据库中没有的数据,那么结果集为空
    while (rs.next())
    {
        String str = rs.getString("Name");//此时str应该是null?
        int id = rs.getInt("Id");     //id为0?
        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这个对象来判断数据库返回的是否为空集,请问该如何判断?由此引出了上述问题(具体问题可以看代码段的注释)

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(3)
伊谢尔伦

Jika pangkalan data mempunyai set kosong, rs.next() akan mengembalikan false dan sementara tidak akan dilaksanakan.
Jika anda tidak tahu, adalah lebih pantas untuk mencuba helaian data kosong daripada menaip begitu banyak perkataan dan menyiarkan soalan di sini untuk menyelesaikan masalah, bukan?

Ty80

@min Masalah cetek telah diselesaikan, tetapi saya rasa soalan yang anda ajukan belum selesai sepenuhnya, saya masih mengesyorkan agar subjek memberi perhatian kepada new Apa yang dilakukan oleh kata kunci:

  1. Buat ruang dalam ingatan timbunan untuk menyimpan kejadian A

  2. Panggil pembina A

  3. Buka alamat pada tindanan mesin maya dan halakan alamat ke ruang timbunan yang baru dibuka

Akhirnya, A a = new A(...) akan mendapat rujukan tindanan ini tidak akan kosong melainkan JVM anda ranap...

伊谢尔伦

1.rs.next adalah salah, ia sepatutnya rs.hasNext(), dan hasilnya juga kosong
2 Jika null dan 0 parameter dimasukkan, objek masih akan dijana tiada alasan untuk tidak menjananya Ah, fikirkan mengapa tidak?

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!