Java


Java Tutorial


Admission Enquiry Form

  

JTable with JDBC

What is JTable in Java?

In java JTable is a class which is used to display data in tabular form. JTable is consist of rows and columns.

Example of JTable with JDBC in Java:

    

//JTable Example :data from database
//In intellij idea to download mysql-connector
//Goto file->project-structure->libraries->from maven
//Search : mysql:mysql-connector-java:5.1.40

package com.company;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import java.sql.*;

class SgJTable extends JFrame implements ActionListener
{
JButton btnshowData;
JTable table;
DefaultTableModel dtm;
String[] str={"name","rollno","fee"};
Container c;
Vector row=new Vector();
Connection con;
Statement stmt;
ResultSet rst;
ResultSetMetaData rsmd;
public SgJTable()
{
btnshowData =new JButton("Show Data");
dtm=new DefaultTableModel();
//dtm.setColumnIdentifiers(str);
table=new JTable();
table.setModel(dtm);
//table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
table.setFillsViewportHeight(true);
JScrollPane scroll = new JScrollPane(table);
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
c=getContentPane();
setTitle("Using JTable");
setExtendedState(JFrame.MAXIMIZED_BOTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
btnshowData.setBounds(100,100,200,30);
btnshowData.addActionListener(this);
scroll.setBounds(100,150,600,300);
setLayout(null);
add(btnshowData);
add(scroll);
//c.add(table);
try {
con = DriverManager.getConnection("jdbc:mysql://localhost/demo", "root", "");
setTitle("connection ok");
}
catch(SQLException ex)
{
setTitle("database error:" + ex.getMessage());
}

}//end of constructor

@Override
public void actionPerformed(ActionEvent e) {
try {
stmt = con.createStatement();
rst=stmt.executeQuery("select * from student");
rsmd=rst.getMetaData();
if (e.getSource() == btnshowData) {
setTitle("testing");
/* row.add("ajay");
row.add("177");
row.add("25000");
/* dtm.addColumn("Name");
dtm.addColumn("Rollno");
dtm.addColumn("Fee");*/
for(int i=1;i<=rsmd.getColumnCount();i++)
{
//row.add(rsmd.getColumnName(i));
dtm.addColumn(rsmd.getColumnName(i));

 }
while(rst.next())
{
Vector v=new Vector();
v.add(rst.getString("name"));
v.add(String.valueOf(rst.getInt("rollno")));
v.add(String.valueOf(rst.getInt("fee")));
v.add(rst.getString("email"));
dtm.addRow(v);
}

    //dtm.addRow(row);
}
}catch (SQLException ex)
{
setTitle("Error:" + ex.getMessage());
}
}
}//end of class
public class Main
{
public static void main(String[] args) {
SgJTable jt=new SgJTable();
}//end of main
}


Note:

The above code is written to display the data into the JTable from database.The data is retreived from the student table with fields name,rollno,fee and email.