jsp连接数据库
<%
String names=request.getParameter("textfield");//登录页面传过来的值
String passw=request.getParameter("textfield2");//登录页面传过来的值
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(
ClassNotFoundException e){
out.println("驱动程序加载错误!");
}
try{
con=DriverManager.getConnection("jdbc:odbc:grade","sa","");
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String condition="select * from Messes ";
rs=sql.executeQuery(condition);
rs.next();
if(names.equals(rs.getString(2)))
{
if(passw.equals(rs.getString(3)))
{
response.sendRedirect("zhuye.jsp");
}
else
{
out.println("用户名或密码错误!"+"<a href=denglu.html>"+"返回"+"</a>");
}
}
else
{
out.println("请先注册:点击"+"<a href=zhuce.html>"+"注册"+"</a>"+"跳转到注册页面");
}
con.close();
}
catch(
SQLException event)
{
out.println("数据库连接错误!");
}
%>
为什么只能检索表Messes第一条 而不是一条一条检索呢
------解决方案--------------------rs是结果集,rs.next(); 表示取下一条,如果有的话rs.next返回true,并且可以用rs.getxxx(i)取的字段的内容。
使用例:
java.sql.Statement stmt = conn.createStatement();
ResultSet r = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (r.next())
{
// 打印当前行的值。
int i = r.getInt("a");
String s = r.getString("b");
float f = r.getFloat("c");
System.out.println("ROW = " + i + " " + s + " " + f);
}
------解决方案--------------------是不是别的地方出错了。。
------解决方案--------------------哦,你仔细看一下你的代码!这里有问题:
con=DriverManager.getConnection("jdbc:odbc:grade","sa","");
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String condition="select * from Messes ";
rs=sql.executeQuery(condition);
rs.next();
if(names.equals(rs.getString(2)))
{
if(passw.equals(rs.getString(3)))
{
response.sendRedirect("zhuye.jsp");
}
else
{
out.println("用户名或密码错误!"+" <a href=denglu.html>"+"返回"+" </a>");
}
}
else
{
out.println("请先注册:点击"+" <a href=zhuce.html>"+"注册"+" </a>"+"跳转到注册页面");