Introduction
This article explains how to set up a database connection with a Swing GUI in Java. The NetBeans IDE is used to create the sample examples.
Fetching Records from Database using Swing GUI
For creating this app we need the following files:
- Java file (SwingDatabaseApp.java)
- SQL table (emp.sql)
1. SwingDatabaseApp.java
This Java consists of the entire logic. First of all we initialize JFrame components using a constructor then create a database connection and finally set the database value to the textfield and display it using a constructor.
2. emp.sql
For fetching records we need a database table; for that we create an "emp" table in our database.
Syntax
emp.sql
create table emp
 (
    uname varchar2(20), umail varchar2(30),
    upass varchar2(20), ucountry varchar2(20)
 );
Insert some rows
The following SQL will insert some rows in it:
1. insert into emp values ('sandeep', '[email protected]', 'welcome', 'India');
2. insert into emp values ('rahul', '[email protected]' , '123', 'India');
Now let's start creating this app. Use the following procedure to do that in the NetBeans IDE.
Step 1
Open the NetBeans IDE.
![NetBeans IDE]()
Step 2
Choose "Java" -> "Java application" as shown below.
![Java Application]()
Step 3
Type your project name as "SwingDatabaseApp" as in the following.
![Java Application]()
Step 4
Now provide the following code in the "SwingDatabaseApp.java" file.
SwingDatabaseApp.java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.sql.*;
 
public class SwingDatabaseApp extends JFrame {
 
//Initializing Components
    JLabel lb, lb1, lb2, lb3, lb4;
    JTextField tf1, tf2, tf3, tf4;
 
    //Creating Constructor for initializing JFrame components
    SwingDatabaseApp() {
        //Providing Title
        super("Fetching Student Information");
 
        lb = new JLabel("Fetching Student Information From Database");
        lb.setBounds(20, 50, 450, 20);
        lb.setForeground(Color.red);
        lb.setFont(new Font("Serif", Font.BOLD, 20));
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500, 500);
        lb1 = new JLabel("U_Name:");
        lb1.setBounds(50, 105, 100, 20);
        tf1 = new JTextField(50);
        tf1.setBounds(160, 105, 100, 20);
        lb2 = new JLabel("U_Mail:");
        lb2.setBounds(50, 135, 100, 20);
        tf2 = new JTextField(100);
        tf2.setBounds(160, 135, 200, 20);
        lb3 = new JLabel("U_Pass:");
        lb3.setBounds(50, 165, 100, 20);
        tf3 = new JTextField(50);
        tf3.setBounds(160, 165, 100, 20);
        lb4 = new JLabel("U_Country:");
        lb4.setBounds(50, 200, 100, 20);
        tf4 = new JTextField(50);
        tf4.setBounds(160, 200, 100, 20);
        setLayout(null);
 
        //Add components to the JFrame
        add(lb);
        add(lb1);
        add(tf1);
        add(lb2);
        add(tf2);
        add(lb3);
        add(tf3);
        add(lb4);
        add(tf4);
 
        //Set TextField Editable False
        tf1.setEditable(false);
        tf2.setEditable(false);
        tf3.setEditable(false);
        tf4.setEditable(false);
 
        //Create DataBase Coonection and Fetching Records for uname='sandeep'
        try {
            String str = "sandeep";
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con = DriverManager.getConnection("jdbc:oracle:thin:@mcndesktop07:1521", "sandeep", "welcome");
            PreparedStatement st = con.prepareStatement("select * from emp where uname=?");
            st.setString(1, str);
 
            //Excuting Query
            ResultSet rs = st.executeQuery();
            while (rs.next()) {
                String s = rs.getString(1);
                String s1 = rs.getString(2);
                String s2 = rs.getString(3);
                String s3 = rs.getString(4);
 
                //Sets Records in TextFields.
                tf1.setText(s);
                tf2.setText(s1);
                tf3.setText(s2);
                tf4.setText(s3);
            }
        } //Create Exception Handler
        catch (Exception ex) {
            System.out.println(ex);
        }
    }
//Running Constructor
 
    public static void main(String args[]) {
        new SwingDatabaseApp();
    }
}
Step 5
Now our project is ready to run. Right-click on the project menu, then choose "Run". The following output will be generated.
![Saandeep Records]()
Step 6
Now change the uname and this time we are fetching records for "rahul". 
String str = "rahul";
![Fetching Rahul Records]()