JDBC連線mysql資料庫查詢資料時遇到的bug

2021-10-24 02:55:36 字數 1648 閱讀 5229

記錄一下今天jdbc連線資料庫查詢資料時遇到的問題

查詢的核心**如下:

list

users=

newarraylist

();...

user user1=

newuser()

;while

(rs.

next()

)...

return users;

然後控制台是沒有報錯的,但是我得到的結果卻是有問題的,結果如下:

這顯然是有問題的啊,於是我就去看底層實現**,實在是找不到bug啊,一臉懵,然後我加了輸出語句,希望把查詢的過程每一步都輸出到控制台去看,然後發現,沒毛病啊,查詢的結果是正常的,每條資料都不一樣,於是我回過頭去看jsp中的遍歷集合語句,也是沒毛病,於是我在資料的每個傳輸階段都加了輸出語句(dao、service、servlet、jsp),問題定位到了dao層,還是資料訪問層的問題啊,於是又回過頭去看**,發現資料在查詢的時候是正確的,但是到了返回值的上一行,資料就不對了,那麼肯定拿到資料後再儲存的時候出了問題!!!!!

終於找到問題所在,我上面只宣告了乙個

user user1=new user();

後面一直在集合裡新增user1,那麼我的users集合裡自始至終則只是反覆儲存了多個user的例項化物件user1,每查詢到一條資料,我就把查詢到的資料的各個屬性值賦給user1;然後儲存user1到集合裡,而不是儲存了多個不同的user的例項化物件;那麼結果肯定是錯誤的啊!

於是我對**做出如下修改,首先的得到查詢的結果條數count,然後宣告乙個長度為count的user陣列,將查詢到的資料先儲存到陣列裡的各個user的例項化物件裡,然後再將陣列的每乙個元素新增到集合users裡;

**如下:

...

user user1=

newuser

[count]

;int i=0;

while

(rs.

next()

)...

return users;

事與願違啊,悲傷辣麼辣麼大!!可繞地球三圈半-------》還是報錯!!!

空指向異常!哎,也還好,冷靜~

老規矩,同上,在控制台輸出查詢結果rs和count,看看誰是空的,結果都能正常輸出,那就繼續看**啦。。。

「元氣滿滿」的一天從找bug開始!我堅強!

!!!是user陣列的問題!!!

啊~舒暢,找到bug的感覺真滴舒爽!

我的物件陣列user1裡的各個物件都沒有例項化,宣告陣列並例項化,但是我並沒有例項化陣列裡的物件啊!!

於是再在user1陣列的宣告的下一行加上**:

for

(int i=

0;i)

ok!至此全部搞定!查詢結果終於正常啦!

jdbc 連線mysql資料庫

class.forname org.postgresql.driver newinstance 裝載資料庫驅動 string url jdbc postgresql localhost 5432 postgres connection con drivermanager.getconnection ...

JDBC 連線MYSQL資料庫

1.載入驅動 class.forname com.mysql.jdbc.driver com.mysql.jdbc 包名 driver 驅動名,驅動包需要引入進來 mysql com.mysql.jdbc.driver oracle oracle.jdbc.driver.oracledriver s...

JDBC連線MySQL資料庫

在學習jdbc過程中,用idea連線資料庫時出現的問題記錄,來來回回找了好多資料,現在把相應的解決辦法記錄下來。通過localhost連線mysql資料庫時,可能會遇到時區的問題,簡單設定一下就可以了,但是通過localhost一般都是可以連上的。string url jdbc mysql loca...