读书人

jsp连接数据库解决方案

发布时间: 2012-01-22 22:38:43 作者: rapoo

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>"+"跳转到注册页面");


}
此处因为你是要循环的查找信息,因此需要用到循环!什么是条件呢?条件就是当你的数据库中不再有信息的时候就技术循环,为了简单额哦么通常使用while()方法进行循环:
while(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>"+"跳转到注册页面");
}
}
这样就会不断的取出元素并进行相应的比较!
还有给你提个小小的建议吧,你的代码太乱了,这样一旦出错不便于你的查找,和后期其他程序员的读写,所以你尽量的将每对大括号尽可能的让他们对齐!

读书人网 >J2EE开发

热点推荐