我们有下面的SQL查询:

select Resa.ResID, Avgångdatum, Avgångtid, AvgångStad, AnkomstTid, AnkomstDatum, AnkomstStad, AntalPlatser, Kostnad,

    (select sum(Bokning.AntalBiljetter) from Bokning where Bokning.ResID = Resa.ResID) as EnkelBiljetter,

    (select sum(Bokning.AntalBiljetter) from Bokning where Resa.ResID in
        (select PaketResa.ResID from PaketResa where PaketResa.PaketID in
            (select PaketID from PaketResa where PaketResa.PaketID = Bokning.PaketID))) as PaketBiljetter

from Resa;


当我们尝试获取java中的“ Enkelbiljetter”和“ PaketBiljetter”列时,

Integer.parseInt(result.getObject("PaketBiljetter").toString()


它返回一个nullpointerexception。我们尝试将“?useOldAliasMetadataBehavior=true”添加到连接语句中,但结果是相同的。也不会将columnindex(10和11)放入getObject方法中。我们正在使用5.1.19 JDBC驱动程序。有什么建议么?

最佳答案

它可能是您的resultgetObject(...)返回空指针。由于有一个getInt()方法,您应该首先尝试以下方法:

result.getInt("PaketBiljetter")


看看会发生什么。

关于java - JDBC ResultSet-无法检索别名列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12910133/

10-11 03:40