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了。