使用jsp连接oracle时,rs.next()值始终为false,表中存在数据
连接部分代码如下:<%@pageinfo="register"language="java"pageEncoding="utf-8"import="java.util.*...
连接部分代码如下:
<%@ page info="register" language="java" pageEncoding="utf-8" import="java.util.*,java.sql.*,java.io.*"%>
<jsp:useBean id="user" scope="page" class="re.Register"/>
<jsp:setProperty name="user" property="username" value=" "/>
<jsp:setProperty name="user" property="password"/>
<%
String drivers="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@127.0.0.1:1521/ORCL";
String usera="system";
String passwd="system";
Connection conn;
String sql;
String pw=null;
Class.forName(drivers);
conn = DriverManager.getConnection(url, usera,passwd);
String a=request.getParameter("username");
String b=request.getParameter("password");
sql="select pasword from us where username='"+a+"'";
try{
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
out.print(rs.next());
while(rs.next()){
pw=rs.getString("pasword");
}
stmt.close();
conn.close();
}catch(SQLException ex) {}
%>
<%}%>
</body>
</html>
我使用out.print(rs.next());输出rs.next()的值一直为false,感觉连接没有错误啊,实在不知道怎么办了。
求大神解答 展开
<%@ page info="register" language="java" pageEncoding="utf-8" import="java.util.*,java.sql.*,java.io.*"%>
<jsp:useBean id="user" scope="page" class="re.Register"/>
<jsp:setProperty name="user" property="username" value=" "/>
<jsp:setProperty name="user" property="password"/>
<%
String drivers="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@127.0.0.1:1521/ORCL";
String usera="system";
String passwd="system";
Connection conn;
String sql;
String pw=null;
Class.forName(drivers);
conn = DriverManager.getConnection(url, usera,passwd);
String a=request.getParameter("username");
String b=request.getParameter("password");
sql="select pasword from us where username='"+a+"'";
try{
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
out.print(rs.next());
while(rs.next()){
pw=rs.getString("pasword");
}
stmt.close();
conn.close();
}catch(SQLException ex) {}
%>
<%}%>
</body>
</html>
我使用out.print(rs.next());输出rs.next()的值一直为false,感觉连接没有错误啊,实在不知道怎么办了。
求大神解答 展开
2个回答
展开全部
out.print(rs.next());
注意这句,因为你在这里调用过rs.next(),你已经取过一次了,所以下次再用时,就取不到了。把这句去掉。
如果去掉这句还是取不到数据,那就做如下检查了:
数据库链接是否成功?
你的sql是不是正确?
如果你是用eclipse开发的话,建议你下个断点,这样方便调试。
另外,你的代码还有一个问题,数据库连接conn 建议放在finally中关闭,同时结果集rs也要关闭。代码如下:
try{
//你的代码
}catch(SQLException ex) {
}finally{
rs.close();
stmt.close();
conn.close();
}
更多追问追答
追问
我加这句话就是为了看rs.next()的值,但是第一次取,输出就是false。就是说rs表里根本就没存进去数据,但是连接都没有错误啊
追答
数据库连接没错的话,那就看你的sql语句,建议把sql打印出来,然后到数据库中运行一下看看。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询