Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Ruben_Barbosa

[Resolvido]Java with BD

Mensagens Recomendadas

Ruben_Barbosa

Classe BD Codigo

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;

public class BD {

    public static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver"; //Classe do driver JDBC
    public static final String BD = "LamInformatica.mdb"; //Nome do Banco criado
    public static final String HOST = "//sbslam/data/BD"; //Maquina onde está o banco
    public static final String STR_CONN = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + HOST + "/" + BD; //URL de conexão
//    public static final String USUARIO = "root"; //Usuário do banco
//    public static final String SENHA = ""; //Senha de conexão
    Connection conn;
    Statement stmt;

    public BD() throws ClassNotFoundException, SQLException {

        try {
            Class.forName(DRIVER);
            conn = (Connection) DriverManager.getConnection(STR_CONN);
//            JOptionPane.showMessageDialog(null, "Conectado com sucesso!");
            stmt = (Statement) conn.createStatement();

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Impossível carregar o Driver.");
            System.exit(0);
        }
    }

    public ResultSet execquery(String query) throws SQLException {
        ResultSet rs = null;
        try {
            rs = stmt.executeQuery(query);
            return rs;
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "" + e.getMessage(), "Erro", 0);
            rs.close();
            return rs;
        }
    }

    public void execUpdate(String query) throws SQLException {
        int rs = stmt.executeUpdate(query);
    }

FrameLogin , Codigo do Botão Validar

   username = new String(this.txtUser.getText());
        password = new String(this.txtPass.getPassword());
       

        try {
           BD bd = new BD();
            if (username.equals("") || password.equals("")) {
                this.lbError.setVisible(true);
                return;

            } else {
                ResultSet rs = bd.execquery("Select * FROM login WHERE Utilizador='" + username + "' AND password = '" + password + "'");
                rs.next();
                //verifica se existe
                String Nome = rs.getString("Utilizador");
                String pass = rs.getString("password");

                if (Nome.equals(username) && pass.equals(password)) {
                    System.out.println("Existe");
                    //executa
                } else {
                    this.lbError.setVisible(true);
                    return;
                }
                this.dispose();
                new JFrameMenu().setVisible(true);
            }

        } catch (ClassNotFoundException ex) {
            System.out.println("CLASSE NAO ENCONTRADA OU INEXISTENTE");
            Logger.getLogger(JFrameLogin.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            System.out.println("ERRO DE SQL , LOGIN ERRADO OU ERRO DE BD");
            Logger.getLogger(JFrameLogin.class.getName()).log(Level.SEVERE, null, ex);
        }

O que pretendo é fazer uma ligação a BD e o utilizador so entra na aplicação se o login existe na BD.

O que estou fazendo de errado  :wallbash:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
M6

Sem dizeres qual é o erro que dá ninguém te pode ajudar.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Ruben_Barbosa

ERRO DE SQL , LOGIN ERRADO OU ERRO DE BD

11/Mai/2010 11:12:49 jlamieconomato.JFrameLogin btnValidarActionPerformed

SEVERE: null

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state

        at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:318)

        at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:411)

        at jlamieconomato.JFrameLogin.btnValidarActionPerformed(JFrameLogin.java:136)

        at jlamieconomato.JFrameLogin.access$100(JFrameLogin.java:10)

        at jlamieconomato.JFrameLogin$2.actionPerformed(JFrameLogin.java:44)

        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

O erro que me dá é este.

Mas é esquezito porque se meter um nome qualquer ele entra :| tanto a nivel de puser como passs e o driver ta a bombar porque ja teste :|

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
M6

O teu print é até bastante explicito: "Invalid cursor state", parece-me que estás a tentar manipular um cursor que não está num estado válido, e.g. aberto por exemplo.

Qual a linha que faz saltar a excepção? Encontra-a e vê se o estado dos objectos é o que esperavas.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Ruben_Barbosa

Esta Linha

   String Nome = rs.getString("Utilizador");
                String pass = rs.getString("password");

Eu não tenho ainda bem a noção do rs porque em VB era diferente e o que tenho feito e aprendendo é de ir ver ao google e chatear o pessoal nos foruns

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
M6

Vê lá se o rs não é null.

Se sim, a forma como estás a construir/criar o rs está a falhar.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.