jsp与数据库的问题

我写了一个小程序

是用html页面提交给jsp页面处理登陆 我把链接数据库都封装到了一个类里面,对数据库的操作也是一样
但是 他给我报ResultSet没当前行 是什么? 下面是我的代码
这是JSP页面的
<%
javabean obj = new javabean();
String name = request.getParameter("txtUserName");
String pass = request.getParameter("txtUserPassword");
String yanzhengma = request.getParameter("txtName");
obj.setTxtUserNmae(name);
obj.setTxyUserPass(pass);
ResultSet rs = obj.yanzheg();
int namelength = name.length();
int passlength = pass.length();
int yanzhengmalength = yanzhengma.length();
String varcode = (String)session.getAttribute("varcode");
String str1 = rs.getString(1);
System.out.println("------------------------------");
String str2 = rs.getString(2);
if( namelength != 0 && passlength != 0 && yanzhengmalength != 0)
{
System.out.println("ccccccccccccccc");
while(rs.next())
{
if(varcode.equals(yanzhengma))
{
if(str1.equals(name) && str2.equals(pass))
{
out.print("window.alert(&#39;登陆成功&#39;)");
out.print("window.location.herf=&#39;login.jsp&#39;");
}
}
else
{
out.print("window.alert(&#39;验证码输入错误,请重新输入&#39;)");
out.print("window.location.herf=&#39;login.jsp&#39;");
}

}

out.print("window.alert(&#39;无此用户或用户密码错误&#39;)");
out.print("window.location.herf=&#39;login.jsp&#39;");
}
else
{
out.print("window.alert(&#39;输入不完整,请检查输入&#39;)");
out.print("window.location.herf=&#39;login.jsp&#39;");
}
%>
这是JAVABEAN的
package org.baijie8.JDBC;

import java.sql.ResultSet;
import java.sql.SQLException;

public class javabean {
private String TxtUserNmae;
private String TxyUserPass;
public String getTxtUserNmae() {
return TxtUserNmae;
}
public void setTxtUserNmae(String txtUserNmae) {
TxtUserNmae = txtUserNmae;
}
public String getTxyUserPass() {
return TxyUserPass;
}
public void setTxyUserPass(String txyUserPass) {
TxyUserPass = txyUserPass;
}

public ResultSet yanzheg()
{
try {
User u = new User();
ResultSet rs = u.resultset(this);
return rs;
}
catch (SQLException e){
e.printStackTrace();
}
return null;
}
}
package org.baijie8.JDBC;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class User {
private Connection conn= null;
public ResultSet resultset(javabean user) throws SQLException
{
try
{
JdbcUtil ju =new JdbcUtil();
conn = ju.getsqlConnection();
String sql = "select * from controller_info where controller_name=? and controller_pass=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,user.getTxtUserNmae());
ps.setString(2, user.getTxyUserPass());
return ps.executeQuery();
}
catch (SQLException e)
{
e.printStackTrace();
}
return null;
}
}

4个回答

[quote]
int yanzhengmalength = yanzhengma.length();
String varcode = (String)session.getAttribute("varcode");
[color=red]这里需要加上 迭代结果集ResultSet [/color]
[color=brown]
[code="java"]if(rs.next())
{
str1 = rs.getString(1);
System.out.println("------------------------------");
str2 = rs.getString(2);
}[/code]
[/color]

String str1 = rs.getString(1);
System.out.println("------------------------------");
String str2 = rs.getString(2);
[/quote]

也就是楼上朋友回答的
对如初学者 要注意细节 慢慢来

你要先调用rs.next();

boolean next()
throws SQLException将指针从当前位置下移一行。ResultSet 指针最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
如果开启了对当前行的输入流,则调用 next 方法将隐式关闭它。读取新行时,将清除 ResultSet 对象的警告链。

返回:
如果新的当前行有效,则返回 true;如果不存在下一行,则返回 false

ResultSet rs = obj.yanzheg();
int namelength = name.length();
int passlength = pass.length();
int yanzhengmalength = yanzhengma.length();
String varcode = (String)session.getAttribute("varcode");
String str1 = null;
String str2 = null;

if(rs.next())
{
str1 = rs.getString(1);
System.out.println("------------------------------");
str2 = rs.getString(2);
}

建议还是了解清楚 JDBC 后再去操作!!

细心点

建议不要在页面里面写这种东东。 :D :D

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问