Classes - Como usá-las

Olá!
Estou toda enrolada com Java…
Não consigo sair da tela de login, tá um sufoco!!
Minha duvida é a seguinte:

Possuo tres tabelas:
USUARIO (LOGIN, SENHA, NOME)
PROGRAMA (ID, DESCRICAO)
USUARIO_PROGRAMA (LOGIN, ID_PROGRAMA)

Cada usuário pode ter acesso a vários programas.

Eu não estou sabendo construir as classes, nao sei se realmente é necessário construí-las, acredito que sim.
Estava pensando em criar três arquivos java, um para cada tabela. Ficaria assim:

[code]public class UsuarioPrograma {
private Connection connection;
private Usuario usuario;
private Programa programa;
(…)
}

public class Programa {
private Connection connection;
private String id;
private String descricao;
(…)
}

public class Usuario{
private Connection connection;
private String login;
private String senha;
private String nome;
(…)
}[/code]

Isto é certo? Parei por aí pq nao sei onde fazer a consulta.
Alguém poderia me explicar? Tá muito confuso pra mim!!
Entendendo isto já é um gnde passo para o restante.
Obrigada,
Luciana

Olá Luciana, qual o banco de dados que vc está usando??

Estou usando o postgres.
Influenciaria em alguma coisa?

Luciana

Então, ae está um exemplo para você se conectar ao banco de dados. Ae vc vê quais consultas vc vai fazer e como vc vai usar o resultado. Mas para que você consiga se conectar ao banco, vc teria que entrar no site do postgres e baixar o driver para a conexão jdbc


public class UsuarioPrograma 
{
	private Connection connection; 
    private Usuario usuario; 
    private Programa programa;
    //url para a conexão com o banco de dados
    private String url = "jdbc:postgresql:nome da base";
    private Statement stmt;
    private ResultSet resultado;
   
    public consultaUsuario (String nome, string senha)
    {
    	try 
		{
			//aqui voce carrega o driver para a conexao
			Class.forName("org.postgresql.Driver");
		}
		catch (java.lang.ClassNotFoundException e) 
		{
			System.out.println("Erro ao criar a conexão com o banco de dados: " + e.getMessage());
		}
		try
		{
			//aqui vc cria a conexão com o banco de dados
			this.connection = DriverManager.getConnection(this.url, "nome do usuario do banco", "senha para a conexao no banco");
			//associa a conexão ao statement (tornando possível fazer consultas ou inserção no banco)
			this.stmt = Conexao.createStatement();
			//consulta sql
			String sql = "Select * from usuarios"; //por exemplo
			//executa a consulta acima
			this.resultado = stmt.executeQuery (sql);
			//aqui, vc faz o ponteiro do resultset ir para o início, e enquanto houver registro
			//no resultset, vc continua no loop até acabar os registros
			while (resultado.next())
			{
				//faz oq vc quiser com o valor retornado do banco
			}
		} 
		catch (SQLException e) 
		{
			System.out.println("Erro ao conectar no banco de dados ou na consulta: " + e.getMessage());
		}
		
    }

}

Qualquer dúvida, vá perguntado…
[]'s

Fiz o que disse e esta parte esta correta.
Tenho outras dúvidas:

* Na classe LoginDisplay.java tenho o seguinte codigo:

public class LoginDisplay extends JFrame{
                        .....
    public LoginDisplay(){ 
                        .....        
       btnOK.addMouseListener (new MouseAdapter() { 
          public void mouseClicked(MouseEvent e) {
 
             if (UsuarioPrograma.EhUsuario("REL_CAIXA", txtLogin.getText().trim(), senha)){
                System.out.println("É usuário"); }
             else 
                JOptionPane.showMessageDialog(null,"Usuário não encontrado","Login", JOptionPane.WARNING_MESSAGE);
});
                        .....

}}
[i]Gostaria que o programa, ao saber que a pessoa é usuária do sistema, feche a tela de login e exiba uma outra tela, a do sistema propriamente dito. Esta tela deveria ser chamada pelo [b]LoginDisplay.java[/b] ou haveria uma outra maneira mais correta/ elegante de se fazer? Pensei em retornar um booleano para a classe principal:[/i]

public class Caixa { public Caixa() { LoginDisplay login = new LoginDisplay(); if (login.qqCoisa) { CaixaDisplay Cx = new CaixaDisplay(); } } public static void main(String[] args) { Caixa cx = new Caixa(); } }
Mas como fazer isso?