2 votes

création d'un formulaire de connexion avec java connecté à mysql

J'ai créé un cadre de connexion java en utilisant netbeans et je l'ai connecté à MySQL en utilisant MySQL Connector/J dont le fichier jar a été ajouté à la bibliothèque des projets. J'ai également créé une table appelée login qui contient tous les détails de connexion. Les codes suivants sont censés permettre le login mais je continue à obtenir des erreurs comme si la connexion à la base de données n'était pas établie.

package Lightapp;
import java.sql.* ;
import javax.swing.* ;

public class AbbeyLog extends javax.swing.JFrame
{
    Connection conn = null;
    ResultSet rs = null;
    PreparedStatement pst = null;

    /**
     * Creates new form AbbeyLog
     */
    public AbbeyLog()
    {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    private void textuserActionPerformed(java.awt.event.ActionEvent evt)
    {
        // TODO add your handling code here:
        String sql = "select * from login where username = ? and password = ?";
        try
        {
            pst = conn.prepareStatement(sql);
            pst.setString(1, textuser.getText());
            pst.setString(2, textpass.getText());
            rs = pst.executeQuery();
            if (rs.next())
            {
                JOptionPane.showMessageDialog(null, "Username and Password correct");
            }
            else
            {
                JOptionPane.showMessageDialog(null, "invalid username and password");
            }
        }
        catch (Exception e)
        {
            JOptionPane.showMessageDialog(null, e);
        }
    }

    private void textuserMouseClicked(java.awt.event.MouseEvent evt)
    {
        // TODO add your handling code here:
    }

    public static void main(String args[])
    {
        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                new AbbeyLog().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField textpass;
    private javax.swing.JButton textuser;
    // End of variables declaration
}

2voto

Stefan Points 3186

Vous devez créer une connexion jdbc au démarrage :

//load the driver
Class.forName("com.mysql.jdbc.Driver").newInstance();
// create a connection         
conn = DriverManager.getConnection("jdbc:mysql://"+hostName+":"
                + dbPort+"/"+databaseName+"?"+"user="+dbUser+"&password=" + dbPassword);

0voto

Alucard Points 41

Une bonne façon de le faire est de créer un fichier séparé appelé dbConnection par exemple. Ce fichier contiendra la méthode pour se connecter à la base de données. Typiquement, il ressemblera à ceci :

public class DBConnection{

  Connection con = null;
  Statement stmt = null;
  ResultSet rs = null;

public DBConnection() {}

public void connect() {
    try {
        Class.forName("net.sourceforge.jtds.jdbc.Driver");
        con=DriverManager.getConnection("jdbc:jtds:sqlserver://adress:port;DatabaseName=dbName", "login", "passwd");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Ensuite, dans votre classe principale, vous faites :

dbConnection db=new dbConnection();
db.connect;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X