creating a login form with java connected to mysql

lee picture lee · Dec 20, 2012 · Viewed 53.7k times · Source

I created a java login frame using netbeans and I connected it to MySQL using MySQL Connector/J which the jar file was added to the projects library. I also created a table called login which includes all the login details. The following codes are supposed to permit login but I keep getting errors as if the connection to the database was not established.

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
}

Answer

Stefan picture Stefan · Dec 20, 2012

You need to create a jdbc connection at startup:

//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);