第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

迭代 ResultSet 時的奇怪行為

迭代 ResultSet 時的奇怪行為

拉丁的傳說 2021-10-20 14:45:25
我試圖迭代查詢的結(jié)果集,但出現(xiàn)了一些我無法解釋的奇怪行為。我已經(jīng)在線和離線搜索了幾個小時,我希望你們中的一個人可以看到是什么導致了它,或者可能知道是什么導致了它。我正在使用 Maven、JEE 和 JDBC。在對 MySQL 數(shù)據(jù)庫運行查詢后,我嘗試對其進行迭代并將 DTO(數(shù)據(jù)傳輸對象)添加到列表中。class PersonDTO {    private String name;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}我迭代結(jié)果的類使用 CDI 注入 PersonDTO。我可以毫無問題地進行查詢,但是這里出錯了(rs 是 ResulSet:List<PersonDTO> persons = new ArrayList<>();while(rs.next())        String name = rs.getString("name");        System.out.println("Current name: " + name);        PersonDTO.setName(name);        persons.add(playlistDTO);}我的控制臺顯示正確的結(jié)果:name: Jackname: Doris然而在persons數(shù)組中,內(nèi)容是Doris,Doris(第二個名字兩次)。
查看完整描述

1 回答

?
米脂

TA貢獻1836條經(jīng)驗 獲得超3個贊

您正在覆蓋同一PersonDTO對象的名稱并將其多次添加到列表中。相反,您應該PersonDTO為循環(huán)的每次迭代創(chuàng)建一個新對象:


List<PersonDTO> persons = new ArrayList<>();

while(rs.next())

        String name = rs.getString("name");

        PersonDTO personDTO = new PersonDTO(); // Or use some injected factory

        personDTO.setName(name);

        persons.add(personDTO);

}


查看完整回答
反對 回復 2021-10-20
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號