Jump to content

[Resolvido]Java with BD


Ruben_Barbosa
 Share

Recommended Posts

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:

Link to comment
Share on other sites

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."

 

Link to comment
Share on other sites

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 :|

Link to comment
Share on other sites

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."

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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."

 

Link to comment
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
 Share

×
×
  • Create New...

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.