rs = pStmt.executeQuery()語句與rs.next()


jsp頁面連接oracle數據庫實現登錄功能,但是rs = pStmt.executeQuery()語句跑不動。

解決方法:

在開始使用java實現myeclipse連接數據庫時創建的文件中嘗試執行該語句。顯示如下圖:

test.java文件

 

 

首先表是存在的,那么應該是創建表的時候,建的表用戶身份與登錄的用戶身份對應不上,所以找不到這個表(具體是不是因為oracle用戶權限問題?)

發現在命令提示符窗口連接數據庫的時候輸入了:

SQL> connect system/1234@test as sysdba

但是在jsp部分連接數據庫時,並不是as sysdba身份。

SQL> connect system/1234@test

連接數據庫建表,問題解決。

然后在執行語句時,依舊登錄錯誤。

做了兩個修改:

在調試連接數據庫時

 

發現沒對上,修改過來。

 ②

發現rs.next()部分有問題

為方便驗證具體問題,修改代碼如下:

執行輸出:no

那么就是rs.next()沒有下一行執行,那是不是語句的問題呢。

 if(rs.next()只遍歷一次,即第一條數據,或者說是確認是否存在數據。

返回no則是數據不存在哦。

但是數據庫是有數據存在的:

那么,先這樣,頭要禿了。

 

 因為在myeclipse database explorer里可以看到有該表的存在:

 

(Log表是以為是username、password關鍵字的問題,但發現不是)

 

接下去百度到一篇類似問題的文章:

https://ask.csdn.net/questions/180093 在這里看到一個評論  ↓

就在想是不是我數據類型設置錯了?果然(喲不惜!)!

之前創建表的時候:

 

改了以后:

 然后在test.java文件中測試:

(因為經過多次嘗試,所以代碼和第一次時不一樣,初次只是為了測試能否連接上數據庫,這次是為了調試沒有獲得數據的問題。)

結果當然輸出YES啦!!!!!

小小總結:

1.建表的時候,准確定義數據類型。

2.配置過程中,准確對應各個參數。不要過於依賴網上的例子,作參考即可。

3.沒有3了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM