select 的结果集条件 return 为空值或非空值-Java

Condition on resultset of a select that return null or not null values-Java

对于一个应用程序,我正在检查 table 是否已填充,以便我可以从中检索它;否则我会从另一个 table 中检索。为此,我使用 select 并通过 wasnull() 检查它是否具有空值。如果是,我执行一个查询;否则,我执行差异查询。我遇到的问题是当它为空时,它不执行查询但执行 returns 空值! 你能告诉我我做错了什么或更好的解决方案吗?

这是我的代码:

String reqEx = "SELECT PYE_DATEDEBUT,PYE_DATEFIN FROM PGEXCEPTPRESENCE WHERE PYE_SALARIE='"+chaine+"' ";
    ResultSet rs = stmt.executeQuery(reqEx);
    if (rs.wasNull()) {
            req = " select jour.PJO_HORDEBPLAGE1,jour.PJO_HORFINPLAGE1,jour.PJO_HORDEBPLAGE2,jour.PJO_HORFINPLAGE2"
            + " from profilpressalarie propressal join profilpresence propres on propressal.ppz_profilpres = propres.ppq_profilpres "
            + "join modelecycle modcyc on propres.PPQ_CYCLEAFFECT = modcyc.PMO_MODELECYCLE join JOURNEETYPE jour " +
            " on modcyc.PMO_JOURNEETYPE= jour.PJO_JOURNEETYPE where modcyc.PMO_ORDREJOUR='"+orderJ+"' " +
            " and propressal.PPZ_salarie= '"+chaine+"'";
    }
    else{
        while(rs.next()){
            req = " select jour.PJO_HORDEBPLAGE1,jour.PJO_HORFINPLAGE1,jour.PJO_HORDEBPLAGE2,jour.PJO_HORFINPLAGE2"
                  + " from PGEXCEPTPRESENCE exc join profilpresence propres on exc.PYE_CYCLEAFFECT = propres.ppq_profilpres join modelecycle modcyc " +
                    "on propres.PPQ_CYCLEAFFECT = modcyc.PMO_MODELECYCLE join JOURNEETYPE jour " +
                    "on modcyc.PMO_JOURNEETYPE= jour.PJO_JOURNEETYPE where modcyc.PMO_ORDREJOUR='"+orderJ+"' " +
                    "and exc.PYE_SALARIE= '"+chaine+"' ";
}}

rs.wasNull() 用于验证最后读取的列是否为 NULL。如果您的 table 的第一列是像 int 这样的原始数据类型,它不会 return NULL。所以在这种情况下,您需要验证查询 return 是否有任何行。为此,请使用以下 if 条件:

if (!rs.next()) {
            req = " select jour.PJO_HORDEBPLAGE1,jour.PJO_HORFINPLAGE1,jour.PJO_HORDEBPLAGE2,jour.PJO_HORFINPLAGE2"
            + " from profilpressalarie propressal join profilpresence propres on propressal.ppz_profilpres = propres.ppq_profilpres "
            + "join modelecycle modcyc on propres.PPQ_CYCLEAFFECT = modcyc.PMO_MODELECYCLE join JOURNEETYPE jour " +
            " on modcyc.PMO_JOURNEETYPE= jour.PJO_JOURNEETYPE where modcyc.PMO_ORDREJOUR='"+orderJ+"' " +
            " and propressal.PPZ_salarie= '"+chaine+"'";
    }