Conexao + Login

Sou iniciante em java é estou com uma dúvida em relação uma fabrica de conexao mais login… o problme é o seguinte. na hora de conectar no banco de dados gostaria que usuario digitasse a senha e o login. como por exemplo.


se eu fizer assim a conexao sai tudo beleza... o erro ocorre no ContatoDao.

 public static Connection getConnection()  throws SQLException{

          try{  
                    
                  
                   Class.forName("com.mysql.jdbc.Driver");
		   
		  //nesta parte de root gostaria que o usuario entrasse com os dados dele, como login e senha

		   return DriverManager.getConnection("jdbc:mysql://localhost/teste","root","");
		   
		  
	  }catch(ClassNotFoundException a){
		  throw new SQLException(a.getMessage());	
	  }
	 
  }
}

já tentei passar como paramentro criando uma classe de login onde o usuario digite os dados e adiciono em um getters  e setters depois passo para a classe coneection até ai dá tudo certo... só que a classe ContatoDao dá um erro.

 public static Connection getConnection(Dados_user login)  throws SQLException{

          try{  

              String login=login.getNome();
              String password=login.getLogin();

                   Class.forName("com.mysql.jdbc.Driver");
		   
		  //nesta parte de root gostaria que o usuario entrasse com os dados dele, como login e senha

		   return DriverManager.getConnection("jdbc:mysql://localhost/teste",login,password);
		   
		  
	  }catch(ClassNotFoundException a){
		  throw new SQLException(a.getMessage());	
	  }
	 
  }
}
 o erro ocorre nessa classe

public class Dao {
  
	private Connection con;
	
	public  Dao(Dados_user contato)throws SQLException{
		
              se eu colocar null some o erro, só que surge uma nullexception quando eu tento listar ou incluir qualquer dado na minha base.
               --------------------------------------------------------- 
	     	this.con=ConnectionFactory.getConnection();
	     	-----------------------------------------------------
	      
		 
	}
	 
	public List<Dados> getLista()throws SQLException{
		String sql="SELECT * FROM eduardo_java";
	    PreparedStatement stmt=con.prepareStatement(sql);
	    ResultSet rs=stmt.executeQuery();
	    List<Dados> contatos=new ArrayList<Dados>();
	    
	    while(rs.next()){
	      Dados contato=new Dados();
	      contato.setNome(rs.getString("nome"));
	      contato.setIdade(rs.getString("idade"));
	      contatos.add(contato);
	    }
	    return contatos;
	}
	
}

Agradeço pela atenção obrigado…

Mas q erro está dando?
Para mim, ficou confuso, aonde vc seta null, NullPointerException é qndo vc acessa algo nulo.
Talvez o return contatos esteja retornando null.
Mas coloque o erro tb

Eu seto o null aqui… só que quando eu chamo a classe para lista , inseriri ou remover… da um erro
NullPointerException
muito obrigado pela atenção yoshikichi.

this.con=ConnectionFactory.getConnection(null);   

[quote=Eborgespontes]Eu seto o null aqui… só que quando eu chamo a classe para lista , inseriri ou remover… da um erro
NullPointerException
muito obrigado pela atenção yoshikichi.

this.con=ConnectionFactory.getConnection(null); [/quote]

pelo q entendi é isso:
seu metodo getConnection não tem parametro para receber null.
a exception pelo q persebi é seu sql não retorna nada.
seu banco esta populado?
abraços

Então se eu tirar o os parametros do ConnectionFactory e ir normal retorna os dados certinhos.

ficando assim.


public class ConnectionFactory{

  public static Connection getConnection()throws SQLException{
    try{
          Class.forName("com.mysql.jdbc.Driver");   

         //aqui eu passo já os dados login e senha.
         
          return DriverManager.getConnection("jdbc:mysql://localhost/teste","root","");   
     
        }catch(ClassNotFoundException a){
         
              throw new SQLException(a.getMessage());
        }
     }
}
--------------------------------------------------------------------------------------------------
//aqui vai funcionar certinho.

public class DAO{
       private Connection con;
   public  DAO() throws SQLException{

    this.con=ConnectionFactory.getConnection();
}

Fazendo todos os usuário que já tem login e senha, vão pode acessar o sistema como root. queria que usuario digitasse os proprios dados.

obrigado pela ajuda yoshikichi…

Vc cria uma tabela com login e senha (o melhor seria armazenar o hash da senha, por razoes de segurança) no seu BD. Ai vc abre a conexao e confere se login e senha batem…

Então o problema que esse banco de dados eu não tenho acesso aos campos em especifico como por exemplo senha e login.mas eu consigo me conectar com ele através do meu usuario e senha. pela connectionfactory. sendo assim todos os usuarios consegueriam entrar no sistema, através do login e senha.
tem como eu fazer isso pela connectionfactory?

o codigo que passei seria de um mysql. só que o banco de dados que estou usando é o db2, gostaria de ao invés de setar meu usuario e senha, o usuario entrasse com a senha e login concedida para acesso.

obrigado!!

espero resposta… abraços