Tela de Login + DB Access

9 respostas
H

Estou criando uma tela de login, para acesso fazer acesso a um programa,
gostaria de saber como faço o login buscando os dados de usuario e senha no banco de dados do access,
a classe de conexão ja está criada e funcionando.

estou usando NetBeans 6.9.1.

9 Respostas

diego_qmota

Seria interessante você trabalhar com outro banco de dados para esse propósito (mysql, SQLSERVER, ORACLE, H2 Database, SQLite, HSQLDB… as opções são muitas).
Na impossibilidade total de usar outro banco de dados:

Conexão com o ACCESS

import java.sql.*;
import javax.swing.*;
 
public class Conexao {

   private Connection connection;
 
   public void conectar() 
   {
        // Strings de conexão com a base de dados Microsoft Access
        // estas duas linhas vão sempre variar de acordo com a base de dados utilizada
        final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
	final String URL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};" +
		"DBQ=C:/basedados.mdb;}";
 
	try{
                // Definindo o driver utilizado
		Class.forName(DRIVER);
                // Criação de variável da classe Connection e instânciando a conexão
		connection = DriverManager.getConnection(URL);
		JOptionPane.showMessageDialog(null, "Conectado!");
	} catch (ClassNotFoundException erro){
		JOptionPane.showInternalMessageDialog(null, "Driver não encontrado.");
	} catch(SQLException erro) {
		JOptionPane.showMessageDialog(null, "Problema ao conectar.");
		System.out.print(erro.getMessage());
	}
    }
}

Para validar acesso, você deve:

  1. criar uma tabela com os usuários - e dados como nome, senha, etc.
  2. quando o usuário solicitar acesso, você estabelece a conexão com o banco ACCESS, roda uma consulta buscando os dados (tipo "select * from usuarios where login = ‘aguinaldo’’), joga o resultado para um resultset e valida a senha. Dai recomendo que você estude melhor JDBC para saber como executar a consulta e varrer o resultado dela.
R

e para realizar o login voce pode utilizar JAAS

da uma googlada, vai te economizar um monte de servico !

H

@diego_qmota
Muito obrigado.
no caso da lista de servidores que você recomendou o uso o que ficaria mais facil para min creio que seria o SQLite,
você tem um exemplo de conexão usando ele ?
Obrigado.

diego_qmota

O SQLite é bom para aplicações monousuárias. Não sei se podem ser usadas por mais de um usuário ou se é isso mesmo que você quer (monousuário).

Segue um exemplo de conexão:

//faça o import do JDBC
import java.sql.*;

public class Conexao {

    //O objeto File contém o caminho para o meu banco de dados
    private static final java.io.File DATABASE = new java.io.File(
            System.getProperty("user.home")
            + System.getProperty("file.separator")
            + ".database"
            + System.getProperty("file.separator")
            + "meu_banco.db");

    //Aqui eu recupero a conexão com o banco de dados
    public static Connection getConnection() throws Exception {

        Class.forName("org.sqlite.JDBC");
        Connection conn =
                DriverManager.getConnection("jdbc:sqlite:" + DATABASE.getPath());

        return conn;

    }

} //fim da classe

O link para o driver do SQLite: http://www.zentus.com/sqlitejdbc/

H

Bom, eu acho que o SQLite ja resolve meu problema,
mas caso eu precise de um DB para multiusuarios, qual você me recomendaria ?

quebrado

PostgreSQL é uma boa opção! :smiley:

diego_qmota

Daí você teria que avaliar. Têm muitas questões a considerar e não há uma resposta pronta para essa pergunta.
Se você quer um db gratuito, qual sua necessidade com relação a escalabilidade, se seu aplicativo é de larga escala, se é web ou desktop…etc.

Você pode ir testando e avaliando qual você gosta mais…

Para aplicações de grande porte, você pode considerar outras opções, como bancos comerciais (ORACLE, SQL Server)…

H

Hum …
neste caso seria uma aplicação desktop de pequeno porte … pretendo de preferencia um db gratuito

heroijapa

Derby, ou JavaDB (2 nomes, mesma coisa)

É animalmente rápido, 100% java, apoiado pela Sun, foi doado pela IBM.

Uso a 4 anos em um sistema de vendas ligados ao SAP e ele me responde muito bem.

Usa o Squirrel SQL (ferramenta front-end de sql) para criar as tabelas e gerenciar os dados.

Não precisa instalar nada é só dar o startNetWorkServer.bat e ele já funciona.

Tem que editar esse bat para funcionar em rede (Google, se não conseguir eu procuro na minha pilha de arquivos do legado pra te mandar)

Criado 13 de janeiro de 2011
Ultima resposta 16 de jan. de 2011
Respostas 9
Participantes 5