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