Java Swing Database Application Example Pdf

In this tutorial, we will learn how to create a Java swing application and connect to a MySQL database using the JDBC API.

Recommended Java Swing tutorials:

  • Login Application using Java Swing + JDBC + MySQL Example Tutorial
  • Registration Form using Java Swing + JDBC + MySQL Example Tutorial

Video Tutorial

Tools and Technologies used

  1. JDK 1.8
  2. MySQL Connector Java - 8.0.13
  3. JDBC - 4.2
  4. Eclipse IDE

What we'll build?

In this tutorial, we build a simple Login Application using Swing and we authenticate the application user credentials (username and password) with database username and password.

Here is the screenshot shows the output of this application:

Database Setup

Make sure that you have installed the MySQL server on your machine.

Let's first create a database with the following SQL statement:

            create            database            swing_demo;

Now, let's create a student table in the above-created database with the following SQL statement:

            CREATE            TABLE            student            ( id            int            NOT NULL,   name            varchar(250)            NOT NULL,   password            varchar(250) );

Insert a single record in the above table with the following SQL statement:

            INSERT INTO            student (id, name, password)            VALUES            (1,                          'Ramesh'            ,                          'Ramesh@123'            );

Create a Simple Java Project

Let's create a simple Java project in Eclipse IDE, name this project as"swing-registration-from-example".

You can use this tutorial to create a simple Java project in Eclipse IDE.

Connecting With Database

In order to connect our Java program with the MySQL database, we need to include MySQL JDBC driver which is a JAR file, namelymysql-connector-java-8.0.13-bin.jar.

Let's download this jar file and add it to your project classpath.

Develop User Login Form

Let's write a code to develop user login form using Java Swing APIs.

            package            com.javaguides.javaswing.login;            import            java.awt.Color;            import            java.awt.EventQueue;            import            java.awt.Font;            import            java.awt.event.ActionEvent;            import            java.awt.event.ActionListener;            import            java.sql.Connection;            import            java.sql.DriverManager;            import            java.sql.PreparedStatement;            import            java.sql.ResultSet;            import            java.sql.SQLException;            import            javax.swing.JButton;            import            javax.swing.JFrame;            import            javax.swing.JLabel;            import            javax.swing.JOptionPane;            import            javax.swing.JPanel;            import            javax.swing.JPasswordField;            import            javax.swing.JTextField;            import            javax.swing.border.EmptyBorder;            public            class            UserLogin            extends            JFrame            {            private            static            final            long            serialVersionUID            =            1            L;            private            JTextField            textField;            private            JPasswordField            passwordField;            private            JButton            btnNewButton;            private            JLabel            label;            private            JPanel            contentPane;            /**                          * Launch the application.                          */                        public            static            void            main(String[]            args) {            EventQueue            .invokeLater(new            Runnable() {            public            void            run() {            try            {            UserLogin            frame            =            new            UserLogin();                     frame.setVisible(true);                 }            catch            (Exception            e) {                     e.printStackTrace();                 }             }         });     }            /**                          * Create the frame.                          */                        public            UserLogin() {         setDefaultCloseOperation(JFrame                          .EXIT_ON_CLOSE);         setBounds(450,            190,            1014,            597);         setResizable(false);         contentPane            =            new            JPanel();         contentPane.setBorder(new            EmptyBorder(5,            5,            5,            5));         setContentPane(contentPane);         contentPane.setLayout(null);            JLabel            lblNewLabel            =            new            JLabel(              "Login"            );         lblNewLabel.setForeground(Color                          .BLACK);         lblNewLabel.setFont(new            Font(              "Times New Roman"            ,            Font                          .PLAIN,            46));         lblNewLabel.setBounds(423,            13,            273,            93);         contentPane.add(lblNewLabel);          textField            =            new            JTextField();         textField.setFont(new            Font(              "Tahoma"            ,            Font                          .PLAIN,            32));         textField.setBounds(481,            170,            281,            68);         contentPane.add(textField);         textField.setColumns(10);          passwordField            =            new            JPasswordField();         passwordField.setFont(new            Font(              "Tahoma"            ,            Font                          .PLAIN,            32));         passwordField.setBounds(481,            286,            281,            68);         contentPane.add(passwordField);            JLabel            lblUsername            =            new            JLabel(              "Username"            );         lblUsername.setBackground(Color                          .BLACK);         lblUsername.setForeground(Color                          .BLACK);         lblUsername.setFont(new            Font(              "Tahoma"            ,            Font                          .PLAIN,            31));         lblUsername.setBounds(250,            166,            193,            52);         contentPane.add(lblUsername);            JLabel            lblPassword            =            new            JLabel(              "Password"            );         lblPassword.setForeground(Color                          .BLACK);         lblPassword.setBackground(Color                          .CYAN);         lblPassword.setFont(new            Font(              "Tahoma"            ,            Font                          .PLAIN,            31));         lblPassword.setBounds(250,            286,            193,            52);         contentPane.add(lblPassword);          btnNewButton            =            new            JButton(              "Login"            );         btnNewButton.setFont(new            Font(              "Tahoma"            ,            Font                          .PLAIN,            26));         btnNewButton.setBounds(545,            392,            162,            73);         btnNewButton.addActionListener(new            ActionListener() {            public            void            actionPerformed(ActionEvent            e) {            String            userName            =            textField.getText();            String            password            =            passwordField.getText();            try            {            Connection            connection            =            (Connection)            DriverManager            .getConnection(              "jdbc:mysql://localhost:3306/swing_demo"            ,                          "root"            ,                          "root"            );            PreparedStatement            st            =            (PreparedStatement) connection                         .prepareStatement(              "Select name, password from student where name=? and password=?"            );                      st.setString(1, userName);                     st.setString(2, password);            ResultSet            rs            =            st.executeQuery();            if            (rs.next()) {                         dispose();            UserHome            ah            =            new            UserHome(userName);                         ah.setTitle(              "Welcome"            );                         ah.setVisible(true);            JOptionPane            .showMessageDialog(btnNewButton,                          "You have successfully logged in"            );                     }            else            {            JOptionPane            .showMessageDialog(btnNewButton,                          "Wrong Username & Password"            );                     }                 }            catch            (SQLException            sqlException) {                     sqlException.printStackTrace();                 }             }         });          contentPane.add(btnNewButton);          label            =            new            JLabel(              "              "            );         label.setBounds(0,            0,            1008,            562);         contentPane.add(label);     } }

Let's understand the above program.

In this above example, we no need to register a JDBC driver because since Java 1.6 and JDBC 4.0 API, it provides a new feature to discover java.sql.Driver automatically, it means the Class.forName is no longer required. Just put any JDBC 4.x driver in the project classpath, and Java is able to detect it.

            private            void            databaseOperation(String            userName,            String            password) {            try            {            Connection            connection            =            (Connection)            DriverManager            .getConnection(              "jdbc:mysql://localhost:3306/swing_demo"            ,                          "root"            ,                          "root"            );            PreparedStatement            st            =            connection        .prepareStatement(              "Select name, password from student where name=? and password=?"            );       st.setString(1, userName);      st.setString(2, password);            ResultSet            rs            =            st.executeQuery();            if            (rs.next()) {            JOptionPane            .showMessageDialog(btnNewButton,                          "You have successfully logged in"            );      }            else            {            JOptionPane            .showMessageDialog(btnNewButton,                          "Wrong Username & Password"            );      }      }            catch            (SQLException            sqlException) {          sqlException.printStackTrace();  } }

Create a Login label using the following code snippet:

            JLabel            lblNewLabel            =            new            JLabel(              "Login"            ); lblNewLabel.setForeground(Color                          .BLACK); lblNewLabel.setFont(new            Font(              "Times New Roman"            ,            Font                          .PLAIN,            46)); lblNewLabel.setBounds(423,            13,            273,            93); contentPane.add(lblNewLabel);

Created username and password labels:

            JLabel            lblUsername            =            new            JLabel(              "Username"            ); lblUsername.setBackground(Color                          .BLACK); lblUsername.setForeground(Color                          .BLACK); lblUsername.setFont(new            Font(              "Tahoma"            ,            Font                          .PLAIN,            31)); lblUsername.setBounds(250,            166,            193,            52); contentPane.add(lblUsername);            JLabel            lblPassword            =            new            JLabel(              "Password"            ); lblPassword.setForeground(Color                          .BLACK); lblPassword.setBackground(Color                          .CYAN); lblPassword.setFont(new            Font(              "Tahoma"            ,            Font                          .PLAIN,            31)); lblPassword.setBounds(250,            286,            193,            52); contentPane.add(lblPassword);

Created username and password text fields:

textField            =            new            JTextField(); textField.setFont(new            Font(              "Tahoma"            ,            Font                          .PLAIN,            32)); textField.setBounds(481,            170,            281,            68); contentPane.add(textField); textField.setColumns(10);  passwordField            =            new            JPasswordField(); passwordField.setFont(new            Font(              "Tahoma"            ,            Font                          .PLAIN,            32)); passwordField.setBounds(481,            286,          

Demo

Let's run theUserLogin.java file and the below screenshot shows the step by step execution of this application.

User Login

Enter User Login Details

User Login Success

Free Spring Boot Tutorial | Full In-depth Course | Learn Spring Boot in 10 Hours


Watch this course on YouTube at Spring Boot Tutorial | Fee 10 Hours Full Course

petersshabligne42.blogspot.com

Source: https://www.javaguides.net/2019/07/java-swing-application-with-database-connection.html

0 Response to "Java Swing Database Application Example Pdf"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel