我想连接数据库做一个登录页面的效果,但是在循环那一块出现问题,麻烦各位前辈帮忙解决一下,代码如下:(最好把解决后的代码发过来,谢谢!) String url = "jdbc:mysql://localhost:3306/javaweb";
String username = "root";
String password = "admin";
Connection con = null;
try{
Class.forName("com.mysql.jdbc.Driver");
con = (Connection) DriverManager.getConnection(url,username,password);
}catch(ClassNotFoundException e){
System.out.println("找不到驱动类!");
}catch(SQLException e){
System.out.println("连接MYSQL数据库失败!");
}
try{
Statement sta = (Statement) con.createStatement();
String str = "select * from user";
ResultSet res = (ResultSet) sta.executeQuery(str);
while(res.next()){
int userid = res.getInt(1);
String usename = res.getString(2);
String userpsw = res.getString(3);
System.out.println("用户ID:"+userid+" ");
System.out.println("用户名:"+usename+" ");
System.out.println("密 码: "+userpsw+" "+"<br>");
if(usename.equals(uname) && userpsw.equals(passw)){
request.getRequestDispatcher("/MVC/LoginTure.jsp").forward(request, response);
//System.out.println("aa");
}else{
request.getRequestDispatcher("/MVC/LoginFalse.jsp").forward(request, response);
//System.out.println("bb");
//System.exit(0);
}
}
}catch(SQLException e){
System.out.println("查询所有用户失败!");
}
String username = "root";
String password = "admin";
Connection con = null;
try{
Class.forName("com.mysql.jdbc.Driver");
con = (Connection) DriverManager.getConnection(url,username,password);
}catch(ClassNotFoundException e){
System.out.println("找不到驱动类!");
}catch(SQLException e){
System.out.println("连接MYSQL数据库失败!");
}
try{
Statement sta = (Statement) con.createStatement();
String str = "select * from user";
ResultSet res = (ResultSet) sta.executeQuery(str);
while(res.next()){
int userid = res.getInt(1);
String usename = res.getString(2);
String userpsw = res.getString(3);
System.out.println("用户ID:"+userid+" ");
System.out.println("用户名:"+usename+" ");
System.out.println("密 码: "+userpsw+" "+"<br>");
if(usename.equals(uname) && userpsw.equals(passw)){
request.getRequestDispatcher("/MVC/LoginTure.jsp").forward(request, response);
//System.out.println("aa");
}else{
request.getRequestDispatcher("/MVC/LoginFalse.jsp").forward(request, response);
//System.out.println("bb");
//System.exit(0);
}
}
}catch(SQLException e){
System.out.println("查询所有用户失败!");
}
String username = "root";
String password = "admin";
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs=null; try{
Class.forName("com.mysql.jdbc.Driver");
con = (Connection) DriverManager.getConnection(url,username,password);
}catch(ClassNotFoundException e){
System.out.println("找不到驱动类!");
}catch(SQLException e){
System.out.println("连接MYSQL数据库失败!");
}
PreparedStatement pstmt = null;
try{
pstmt =con.prepareStatement("select * from user where uname=? and passw=?");
//UseName,PassWord 为页面传过来的值。
pstmt.setString(1,UseName);
pstmt.setString(2,PassWord);
rs=pstmt.executeQuery();
if(rs!=null && rs.next()){
request.getRequestDispatcher("/MVC/LoginTure.jsp").forward(request, response);
//System.out.println("aa");
}else{
request.getRequestDispatcher("/MVC/LoginFalse.jsp").forward(request, response);
//System.out.println("bb");
//System.exit(0);
}
}
}catch(SQLException e){
System.out.println("查询所有用户失败!");
} //数据库结束关闭连接。
这样写可用....注意从表单中传过的值和...数据库中的字段..看写错了没..
if(usename.equals(uname) && userpsw.equals(passw)){
这个uname,passw在哪儿,我只看到上面的
String username = "root";
String password = "admin";
我看了一下,你这里循环没有什么问题,可能你没有导入mysql jar包,还有你结束数据库连接后要把连接关闭
我按照自己的环境稍微改了下,可以用了
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestMySql { static Connection conn = null;
static Statement sta = null;
static ResultSet res = null; public static void main(String[] args) { try { Class.forName("org.gjt.mm.mysql.Driver");
String url = "jdbc:mysql://localhost:3306/mydb";
String userName = "root";
String password = "password";
conn = DriverManager.getConnection(url, userName, password);
sta = conn.createStatement();
String str = "select * from user";
res = (ResultSet) sta.executeQuery(str); while (res.next()) {
int userid = res.getInt(1);
String usename = res.getString(2);
String userpsw = res.getString(3); System.out.println("用户ID:" + userid);
System.out.println("用户名:" + usename);
System.out.println("密 码: " + userpsw); /*
* if(usename.equals(uname) && userpsw.equals(passw)){
* request.getRequestDispatcher("/MVC/LoginTure.jsp").forward(request,
* response); //System.out.println("aa");
*
* }else{
* request.getRequestDispatcher("/MVC/LoginFalse.jsp").forward(request,
* response); //System.out.println("bb"); //System.exit(0); }
*/
}
} catch (SQLException e) {
System.out.println("查询所有用户失败!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
close();
}
}
public static void close(){
try{
if(conn!=null){conn.close();}
if(sta!=null){sta.close();}
if(res!=null){res.close();}
}catch(Exception e){
e.printStackTrace();
}
}}