2011-12-27 140 views
0

我正在使用JTable和mysql connectivity.in mysql我有一張名爲studentmaster的表,字段爲Studid,StudNo,StudName,Stud mrk1,Stud Mrk2,Stud Tot,Stud Res。我需要使用resultset來獲取JTable中的StudName,Stud mrk1,stud mark2,stud tot,stud res。我沒有發現如何將這些字段值單獨設置爲JTable,因此指導我使用ResultSet將這些值單獨設置爲JTable。我使用的是數據從MySQL檢索到JTable

package student; 
import java.awt.*; 
import javax.swing.*; 
import java.awt.*; 
import java.sql.*; 
import java.util.*; 
import javax.swing.*; 
import java.awt.event.*; 
import javax.swing.table.*; 

public class student1 extends javax.swing.JFrame { 
    // public Connection Conn; 
    Vector data = new Vector() ; 
    Vector columnNames= new Vector(); 


    public student1() { 
     initComponents(); 
     Connection conn; 

    } 
public void Connection(){ 
     try 
{ 
    Class.forName("com.mysql.jdbc.Driver"); 
String username = "root"; 
String password = "root"; 
String Database = "jdbc:mysql://localhost:3306/project"; 
Connection conn = DriverManager.getConnection(Database, username, password); 
System.out.println("*** Connect to the database ***"); 


Vector<String> Columns = new Vector<String>(); 
Vector<Vector<Object>> Rows = new Vector<Vector<Object>>(); 
String Query = "Select * from StudentMaster"; 
PreparedStatement smnt = conn.prepareStatement(Query); 
ResultSet results = smnt.executeQuery(); 
ResultSetMetaData metaDt = results.getMetaData(); 
//(metaDt); 

int cols = metaDt.getColumnCount(); 
Columns.clear(); 
//System.out.println("database" +cols); 
for(int i=1;i<cols;i++){ 
    columnNames.addElement (metaDt.getColumnName(i)); 
} 
Rows.clear(); 
while(results.next()){ 
    Vector row= new Vector(cols); 
    for(int i=1;i<=cols;i++){ 
     row.addElement(results.getObject(i)); 
     } 

    data.addElement(row); 
} 
results.close(); 
smnt.close(); 

conn.close(); 
    } 
catch(Exception e) 
{ 
    System.out.println(e); 
} 
} 

    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     jPanel2 = new javax.swing.JPanel(); 
     jButton1 = new javax.swing.JButton(); 
     jButton2 = new javax.swing.JButton(); 
     jButton4 = new javax.swing.JButton(); 
     jButton3 = new javax.swing.JButton(); 
     jScrollPane1 = new javax.swing.JScrollPane(); 
     jTable1 = new javax.swing.JTable(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
     setForeground(java.awt.Color.white); 

     jButton1.setLabel("New"); 

     jButton2.setMnemonic('N'); 
     jButton2.setText("jButton1"); 

     jButton4.setText("jButton1"); 

     jButton3.setText("jButton1"); 

     javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); 
     jPanel2.setLayout(jPanel2Layout); 
     jPanel2Layout.setHorizontalGroup(
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(jPanel2Layout.createSequentialGroup() 
       .addContainerGap() 
       .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
     ); 

     jPanel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jButton1, jButton2, jButton3, jButton4}); 

     jPanel2Layout.setVerticalGroup(
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(jPanel2Layout.createSequentialGroup() 
       .addContainerGap() 
       .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
         .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) 
         .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)) 
        .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addContainerGap()) 
     ); 

     jPanel2Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jButton1, jButton2, jButton3, jButton4}); 

     jButton2.getAccessibleContext().setAccessibleName(""); 

     jTable1.setModel(new javax.swing.table.DefaultTableModel(
      new Object [][] { 
       {null, null, null, null, null, null, null, null}, 
       {null, null, null, null, null, null, null, null}, 
       {null, null, null, null, null, null, null, null}, 
       {null, null, null, null, null, null, null, null} 
      }, 
      new String [] { 
       "Id", "No", "Name", "Class", "Subj 1", "Subj 2", "Total", "Result" 
      } 
     ) { 
      Class[] types = new Class [] { 
       java.lang.Integer.class, java.lang.Integer.class, java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.String.class 
      }; 

      public Class getColumnClass(int columnIndex) { 
       return types [columnIndex]; 
      } 
     }); 
     jScrollPane1.setViewportView(jTable1); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addContainerGap(708, Short.MAX_VALUE) 
       .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap()) 
      .addGroup(layout.createSequentialGroup() 
       .addContainerGap() 
       .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1016, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addContainerGap() 
       .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
       .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap()) 
     ); 

     pack(); 
     java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); 
     java.awt.Dimension dialogSize = getSize(); 
     setLocation((screenSize.width-dialogSize.width)/2,(screenSize.height-dialogSize.height)/2); 
    }// </editor-fold>       


    public static void main(String args[]) { 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new student1().setVisible(true); 
       student1 s1=new student1(); 
       s1.Connection(); 

      } 
     }); 
    } 

    // Variables declaration - do not modify      
    private javax.swing.JButton jButton1; 
    private javax.swing.JButton jButton2; 
    private javax.swing.JButton jButton3; 
    private javax.swing.JButton jButton4; 
    private javax.swing.JPanel jPanel2; 
    private javax.swing.JScrollPane jScrollPane1; 
    private javax.swing.JTable jTable1; 
    // End of variables declaration     

} 
+2

將您的查詢限制到期望的列不足以限制您的查詢:'SELECT StudName,Stud_mark1,stud_mark2,stud_tot,stud_res FROM StudentMaster'? – Howard 2011-12-27 10:36:12

+0

請學習java命名約定並堅持使用它們 – kleopatra 2011-12-27 11:20:49

回答