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 }