cari

Rumah  >  Soal Jawab  >  teks badan

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

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中文网2811 hari yang lalu520

membalas semua(3)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:36:25

    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?

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 09:36:25

    @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...

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:36:25

    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?

    balas
    0
  • Batalbalas