In this tutorial, we will learn how to create a Registration Form using Java Swing with database connectivity. Here we will use the MySQL database to store user data via JDBC API.
Video Tutorial
This tutorial explained in-detail in the below video tutorial:
Tools and Technologies used
- JDK 1.8
- MySQL Connector Java - 8.0.13
- JDBC - 4.2
- Eclipse IDE
What we'll build?
- We are developing a simple Java Swing application with a Registration Form.
- Store user registration data into the MySQL database.
- Below 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 an account table in the above-created database with the following SQL statement:
CREATE TABLE account
( first_name varchar(250) NOT NULL,
last_name varchar(250) NOT NULL,
user_name varchar(250) NOT NULL,
password varchar(250),
email_id varchar(250) NOT NULL,
mobile_number varchar(250) NOT NULL
);
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, namely mysql-connector-java-8.0.13-bin.jar.
Let's download this jar file and add it to your project classpath.
User Registration Source Code
Let's create a UserRegistration class in your project and add the following source code to it:
package com.javaguides.javaswing.reg;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
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;
/**
* User Registration using Swing
* @author javaguides.net
*
*/
public class UserRegistration extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextField firstname;
private JTextField lastname;
private JTextField email;
private JTextField username;
private JTextField mob;
private JPasswordField passwordField;
private JButton btnNewButton;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UserRegistration frame = new UserRegistration();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public UserRegistration() {
setIconImage(Toolkit.getDefaultToolkit().getImage("C:\\Users\\User\\Desktop\\STDM.jpg"));
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 lblNewUserRegister = new JLabel("New User Register");
lblNewUserRegister.setFont(new Font("Times New Roman", Font.PLAIN, 42));
lblNewUserRegister.setBounds(362, 52, 325, 50);
contentPane.add(lblNewUserRegister);
JLabel lblName = new JLabel("First name");
lblName.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblName.setBounds(58, 152, 99, 43);
contentPane.add(lblName);
JLabel lblNewLabel = new JLabel("Last name");
lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblNewLabel.setBounds(58, 243, 110, 29);
contentPane.add(lblNewLabel);
JLabel lblEmailAddress = new JLabel("Email\r\n address");
lblEmailAddress.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblEmailAddress.setBounds(58, 324, 124, 36);
contentPane.add(lblEmailAddress);
firstname = new JTextField();
firstname.setFont(new Font("Tahoma", Font.PLAIN, 32));
firstname.setBounds(214, 151, 228, 50);
contentPane.add(firstname);
firstname.setColumns(10);
lastname = new JTextField();
lastname.setFont(new Font("Tahoma", Font.PLAIN, 32));
lastname.setBounds(214, 235, 228, 50);
contentPane.add(lastname);
lastname.setColumns(10);
email = new JTextField();
email.setFont(new Font("Tahoma", Font.PLAIN, 32));
email.setBounds(214, 320, 228, 50);
contentPane.add(email);
email.setColumns(10);
username = new JTextField();
username.setFont(new Font("Tahoma", Font.PLAIN, 32));
username.setBounds(707, 151, 228, 50);
contentPane.add(username);
username.setColumns(10);
JLabel lblUsername = new JLabel("Username");
lblUsername.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblUsername.setBounds(542, 159, 99, 29);
contentPane.add(lblUsername);
JLabel lblPassword = new JLabel("Password");
lblPassword.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblPassword.setBounds(542, 245, 99, 24);
contentPane.add(lblPassword);
JLabel lblMobileNumber = new JLabel("Mobile number");
lblMobileNumber.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblMobileNumber.setBounds(542, 329, 139, 26);
contentPane.add(lblMobileNumber);
mob = new JTextField();
mob.setFont(new Font("Tahoma", Font.PLAIN, 32));
mob.setBounds(707, 320, 228, 50);
contentPane.add(mob);
mob.setColumns(10);
passwordField = new JPasswordField();
passwordField.setFont(new Font("Tahoma", Font.PLAIN, 32));
passwordField.setBounds(707, 235, 228, 50);
contentPane.add(passwordField);
btnNewButton = new JButton("Register");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String firstName = firstname.getText();
String lastName = lastname.getText();
String emailId = email.getText();
String userName = username.getText();
String mobileNumber = mob.getText();
int len = mobileNumber.length();
String password = passwordField.getText();
String msg = "" + firstName;
msg += " \n";
if (len != 10) {
JOptionPane.showMessageDialog(btnNewButton, "Enter a valid mobile number");
}
try {
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/swing_demo", "root", "root");
String query = "INSERT INTO account values('" + firstName + "','" + lastName + "','" + userName + "','" +
password + "','" + emailId + "','" + mobileNumber + "')";
Statement sta = connection.createStatement();
int x = sta.executeUpdate(query);
if (x == 0) {
JOptionPane.showMessageDialog(btnNewButton, "This is alredy exist");
} else {
JOptionPane.showMessageDialog(btnNewButton,
"Welcome, " + msg + "Your account is sucessfully created");
}
connection.close();
} catch (Exception exception) {
exception.printStackTrace();
}
}
});
btnNewButton.setFont(new Font("Tahoma", Font.PLAIN, 22));
btnNewButton.setBounds(399, 447, 259, 74);
contentPane.add(btnNewButton);
}
}
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.
Learn complete JDBC tutorial at https://www.javaguides.net/p/jdbc-tutorial.html.Demo
Let's run the above Java program and the output shown in the following screenshots:
New User Register Page:
Enter User Details in Register Page:
After the User Registration:
Related Swing Tutorials
- Java Swing Hello World Example Tutorial - In this tutorial, we will learn how to create a simple Swing hello world program.
- Java Swing Application with Database Connection - In this tutorial, we will learn how to create a Java swing application and connect to a MySQL database using the JDBC API.
- Login Application using Java Swing + JDBC + MySQL Example Tutorial - In this tutorial, we will learn how to create a simple Login application using Java Swing and we authenticate login user with a database using JDBC and MySQL.
- Registration Form using Java Swing + JDBC + MySQL Example Tutorial - In this tutorial, we will learn how to create a Registration Form using Java Swing with database connectivity. Here we will use the MySQL database to store user data via JDBC API.
sir , great video for beginners . i request you to make an attachment video on creating a login page and retrieving the credentials from database which are given in registration.
ReplyDeleteIf we didn't put record and register then what will it show
ReplyDeleteI would like to appreciate and thanks for providing such a nice stuff...
ReplyDeleteDid not work, it says mobile number is not valid
ReplyDelete