Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Ruben_Barbosa

[Resolvido]Java with BD

Recommended Posts

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:

Share this post


Link to post
Share on other 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."

 

Share this post


Link to post
Share on other 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 :|

Share this post


Link to post
Share on other 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."

 

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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."

 

Share this post


Link to post
Share on other sites
Ruben_Barbosa

M6 Obrigado :D .

já percebi.

Tava com o ResultSet a null logo a instrução dava galho.

ty

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.