Jump to content

Recommended Posts

Posted

consegui criar um programa que me liga a uma base de dados...

o problema é que ao utilizar noutro PC não consegue ligar à base de dados, e recebo o erro java.mysql.jdbc.Driver...

alguém sabe onde está o erro? eu acho que é qualquer coisa com o library da Driver...

Posted

esta é a class que criei...

import java.sql.*;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

/**
*
* @author Tiago José Vieira Pires Costa
*/
public class DBConnector{

    public DBConnector(JFrame frame, String username, String pass, JLabel info) {
        this.username = username;
        this.password = pass;
        this.frame = frame;
        this.info = info;
        info.setText("Não está conectado à base de dados.");
    }

    public void connect()
    {
        int ask = JOptionPane.showConfirmDialog(frame, "Têm a certeza que deseja ligar-se à base de dados?", "", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
        if(ask == 0)
        {
            info.setText("A conectar à base de dados...");
            connecting();
        }
    }

    public void connecting()
    {
        try {
            String userName = "oculto";
            String passWord = "oculto";
            String url = "jdbc:mysql://db4free.net:3306/oculto";

            Class.forName("com.mysql.jdbc.Driver").newInstance();

            conn = DriverManager.getConnection(url, userName, passWord);

            JOptionPane.showMessageDialog(frame, "Ligação à base de dados estabelecida.", "", JOptionPane.INFORMATION_MESSAGE);
            info.setText("Está conectado à base de dados.");
            connected = true;
        } catch (Exception e) {
            JOptionPane.showMessageDialog(frame, "Impossivél ligar à base de dados. Ligação terminada.", "", JOptionPane.ERROR_MESSAGE);
            JOptionPane.showMessageDialog(frame, e.getMessage(), "", JOptionPane.ERROR_MESSAGE);
            connected = false;
            if (conn != null) {
                try {
                    conn.close();
                    JOptionPane.showMessageDialog(frame, "Ligação à base de dados terminada.", "", JOptionPane.INFORMATION_MESSAGE);
                    info.setText("Não está conectado à base de dados.");
                } catch (Exception ex) { /* ignore close errors */ }
            }
        }
    }

    public void disconnect()
    {
        if(conn != null)
        {
            try {
                conn.close();
                conn = null;
                connected = false;
                JOptionPane.showMessageDialog(frame, "Ligação à base de dados terminada.", "", JOptionPane.INFORMATION_MESSAGE);
                info.setText("Não está conectado à base de dados.");
            } catch (Exception ex) { /* ignore close errors */ }
        }
    }
    

    public boolean validateUser(String username, String password)
    {
        try {
            Statement stm = conn.createStatement();
            stm.executeQuery("SELECT * FROM users");
            rs = stm.getResultSet();

            while(rs.next())
            {
                if(rs.getString("username").equals(username))
                {
                    if(rs.getString("password").equals(password))
                    {
                        validated = true;
                    } else
                    {
                        validated = false;
                    }
                }
            }
        } catch (SQLException ex) {
            System.err.print("Error");
        }
        return validated;
    }


    Connection conn = null;

    ResultSet rs;

    boolean connected = false;
    boolean validated = false;
    String username;
    String password;
    JFrame frame;
    JLabel info;
}

como já disse no meu pc funciona totalmente...  mas ao enviar para os meu amigos por mail para eles testarem... todos dizem que não funciona...

Nota: só-lhes enviei o ficheiro .jar do programa...

Posted

Falta o jar com a Driver do mysql

pois, foi a 1ª vez que fiz um programa com uma lib e não tinha reparado na pasta lib ao lado do jar do programa lol

de qualquer forma, obrigado aos dois

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
×
×
  • 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.