使用jsf和postgresql进行身份验证

使用jsf和postgresql进行身份验证,postgresql,jsf,Postgresql,Jsf,我尝试使用jsf和postgres数据库进行身份验证。 我的类conect.java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean @Se

我尝试使用jsf和postgres数据库进行身份验证。 我的类conect.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean 
@SessionScoped
public class connect {
private  boolean connected;
 private  String pass;
  private   String user;
      private   String message;

public boolean isConnected() {
    return connected;
}

public void setConnected(boolean connected) {
    this.connected = connected;
}

public String getPass() {
    return pass;
}

public void setPass(String pass) {
    this.pass = pass;
}

public String getUser() {
    return user;
}

public void setUser(String user) {
    this.user = user;
}

public String getMessage() {
    return message;
  }

  public void setMessage(String message) {
      this.message = message;
  }


 public String check()
 {
   Connection c = null;
   Statement stmt = null;
   try {

     c = DriverManager
        .getConnection("jdbc:postgresql://localhost:5432/login", "postgres", "1234");
     c.setAutoCommit(false);
     System.out.println("Opened database successfully");

     stmt = c.createStatement();
     ResultSet rs = stmt.executeQuery( "SELECT * FROM users;" );
     while ( rs.next() ) {

       int iduser = rs.getInt("iduser");
         String  username = rs.getString("username");
        String password  = rs.getString("password");
         System.out.println( "ID = " + iduser );
      System.out.println( "USERNAME = " + username );
      System.out.println( "PASSWORD = " + password );



  if(user.equals(username) &&(pass.equals(password))){

   message="admin";
  }
 else message="error";

     }
     rs.close();
     stmt.close();
     c.close();
   } catch ( Exception e ) {
     System.err.println( e.getClass().getName()+": "+ e.getMessage() );

   }
   System.out.println("Operation done successfully");
   return message;
 }


public connect() {
}

public static void main( String args[] ){
connect c= new connect();
c.check();
}
}


该程序可以很好地从数据库中恢复信息,问题是该程序只考虑了“users”表的最新用户名和密码。有人能告诉我问题出在哪里吗

您似乎没有掌握一些SQL和JDBC基础知识,例如PreparedStatements和where子句。更不用说你的
check
方法基本上是为每个登录请求打开一个新的数据库连接。你能给我更多的解释或者一个例子吗,因为我在java中是新手