Why appears twice the data of the mysql database
code:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package testegrid;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
/**
*
* @author
*/
public class DataInJTable extends javax.swing.JFrame {
//This Vector Of A String Vector will be used to hold data from
// database table to display in JTable.
static Vector<Vector<String>> data=new Vector<Vector<String>>();
static JTable table;
public DataInJTable()
{
super("JTabe with MySql Database");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel topPanel=new JPanel();
JLabel label1=new JLabel("MySQL Database Name : test");
label1.setPreferredSize(new Dimension(200,30));
JLabel label2=new JLabel("MySQL Table Name : One");
label2.setPreferredSize(new Dimension(200,30));
topPanel.add(label1);
topPanel.add(label2);
getContentPane().add(topPanel,BorderLayout.NORTH);
Vector<String> headers=new Vector<String>();
headers.add("chave");
headers.add("Nome");
getData();
//this is the model which contain actual body of JTable
DefaultTableModel model = new DefaultTableModel(data, headers);
table=new JTable(model);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
header_size();
JScrollPane scroll = new JScrollPane(table);
scroll.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
getContentPane().add(scroll,BorderLayout.SOUTH);
pack();
setResizable(false);
setVisible(true);
}
/**
* Setting the particular Column Size in JTable
*/
public static void header_size() {
TableColumn column = table.getColumnModel().getColumn(0);
column.setPreferredWidth(100);
column = table.getColumnModel().getColumn(1);
column.setPreferredWidth(350);
}
/**
* Fetching Data From MySql Database
* and storing in a Vector of a Vector
* to Display in JTable
*/
private static void getData()
{
// Enter Your MySQL Database Table name in below Select Query.
String str="select * from one";
Connection cn;
ResultSet rs;
Statement st;
try {
// Change the database name, hosty name,
// port and password as per MySQL installed in your PC.
cn=DriverManager.getConnection("jdbc:mysql://" +
"localhost:3306/test","root","12345");
st=cn.createStatement();
rs=st.executeQuery(str);
while(rs.next())
{
Vector <String> d=new Vector<String>();
d.add(rs.getString("id"));
d.add(rs.getString("name"));
d.add("\n\n\n\n\n\n\n");
data.add(d);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new DataInJTable();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
// Variables declaration - do not modify
// End of variables declaration
}
















