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