Latest Tutorials| Questions and Answers|Ask Questions?|Site Map



Home Java Example Java Swing JTable Display Data From MySQL Database

Related Tutorials


 
 

Share on Google+Share on Google+

JTable Display Data From MySQL Database

Advertisement
This section will describe you the displaying of data of a database table into a JTable. Here you will read about how to create a table in Java swing, how can you add column header's name, how can you show data into the table.

JTable Display Data From MySQL Database

In this section we will discuss about how to display data of a database table into javax.swing.JTable

This section will describe you the displaying of data of a database table into a JTable. Here you will read about how to create a table in Java swing, how can you add column header's name, how can you show data into the table.

How to create table in Java ?

To create a table in Java Swing we will use the JTable and many more APIs provided by Oracle. javax.swing.JTable class is used to create an instance of table in Java. javax.swing.table.DefaultTableModel provides the model for table. To get a better table visibility it is recommended that the table should be kept into JScrollPane.

How to add column header's name ?

However, you can set the column header's name in various ways but, the simplest way to set the header name is by defining an array. See the example, discussed later.

How can you add data into the table ?

As the column header's name you can set the data into table rows in various way but, the simplest way to set the data of table row is by defining an array. See the example, discussed later.

Example

Here I am giving a simple example which will demonstrate you how to add table column header's name and how to add data into the rows of table from database table. In this example we will create a GUI for taking input through user, and then we will fetch the record according to the given input and then we will displayed the fetched record into the table. In this example the record will be fetched after giving input in the textbox and clicked on the search button. We will display the fetched data into a table which is added inside a frame. To create a table inside a frame we will create a table model using DefaultTableModel class and then we will add the column headers using setColumnIdentifiers() method and then we will set the model to default model using setModel() method of JTable class. Then we will add the table into JScrollPane. Then we will fetch the record from database table, and added these values using model.addRow(Object[]).

Database Table

student

CREATE TABLE `student` (                
           `rollno` varchar(15) NOT NULL,        
           `name` varchar(20) DEFAULT NULL,      
           `class` varchar(5) DEFAULT NULL,      
           `section` varchar(5) DEFAULT NULL,    
           PRIMARY KEY (`rollno`)                
         ) ENGINE=InnoDB DEFAULT CHARSET=latin1  

Source Code

SearchResult.java

package net.roseindia.jtableExample;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;

import java.awt.*;
import java.sql.*;
import java.awt.event.*;

public class SearchResult implements ActionListener{
JFrame frame, frame1;
JTextField textbox;
JLabel label;
JButton button;
JPanel panel;
static JTable table;

String driverName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/record";
String userName = "root";
String password = "root";
String[] columnNames = {"Roll No", "Name", "Class", "Section"};

public void createUI()
{
frame = new JFrame("Database Search Result");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
textbox = new JTextField();
textbox.setBounds(120,30,150,20); 
label = new JLabel("Enter your roll no");
label.setBounds(10, 30, 100, 20);
button = new JButton("search");
button.setBounds(120,130,150,20);
button.addActionListener(this);

frame.add(textbox);
frame.add(label);
frame.add(button);
frame.setVisible(true);
frame.setSize(500, 400); 
} 

public void actionPerformed(ActionEvent ae)
{
button = (JButton)ae.getSource();
System.out.println("Showing Table Data.......");
showTableData(); 
} 

public void showTableData()
{

frame1 = new JFrame("Database Search Result");
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setLayout(new BorderLayout()); 
//TableModel tm = new TableModel();
DefaultTableModel model = new DefaultTableModel();
model.setColumnIdentifiers(columnNames);
//DefaultTableModel model = new DefaultTableModel(tm.getData1(), tm.getColumnNames()); 
//table = new JTable(model);
table = new JTable();
table.setModel(model); 
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
table.setFillsViewportHeight(true);
JScrollPane scroll = new JScrollPane(table);
scroll.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); 
String textvalue = textbox.getText();
String roll= "";
String name= "";
String cl = "";
String sec = "";
try
{ 
Class.forName(driverName); 
Connection con = DriverManager.getConnection(url, userName, password);
String sql = "select * from student where rollno = "+textvalue;
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
int i =0;
if(rs.next())
{
roll = rs.getString("rollno");
name = rs.getString("name");
cl = rs.getString("class");
sec = rs.getString("section"); 
model.addRow(new Object[]{roll, name, cl, sec});
i++; 
}
if(i <1)
{
JOptionPane.showMessageDialog(null, "No Record Found","Error",
JOptionPane.ERROR_MESSAGE);
}
if(i ==1)
{
System.out.println(i+" Record Found");
}
else
{
System.out.println(i+" Records Found");
}
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex.getMessage(),"Error",
JOptionPane.ERROR_MESSAGE);
}
frame1.add(scroll);
frame1.setVisible(true);
frame1.setSize(400,300);
}

public static void main(String args[])
{
SearchResult sr = new SearchResult();
sr.createUI(); 
}
}

Output :

Data in the database table is as follows :

When you will execute the SearchResult.java class you will get the output as follows :

1. At first a GUI window will be opened for taking input to fetch the corresponding record into the database table as follows :

2. When you will input the value into the textbox (say, give the value 125 into the textbox) and click on search button then the output will be as follows :

Download Source Code

Advertisement

If you enjoyed this post then why not add us on Google+? Add us to your Circles



Liked it!  Share this Tutorial


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: May 21, 2013

Related Tutorials

Discuss: JTable Display Data From MySQL Database  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 
Comments:7
sathyaraj
August 2, 2013
java

i need from jtable into mysql store in jrame using netbeans
rumiana
October 6, 2013
ERROR

Hi I have a following error message: "com.mysql.jdbc.Driver". What king of error is this?
ranjini
November 29, 2013
JTable Display Data From MySQL Database

thank you so much..
laxman
April 24, 2014
Super and Simple code

Hi Boss This program is very very useful to me Thankq
Femi
June 24, 2014
Thanks

Didn't go through the all the code but found exactly what I was looking for within it. Now I can implement mine. thanks
Femi
June 24, 2014
Good Enough

Didn't find what I was looking for, but your code gave me a footing on how to go about fixing mine. Thanks
Shashikant
July 17, 2014
JTable Display Data From MySQL Database

Thank you So much............ It's work.
DMCA.com