2013-05-28 43 views
-3

如何將數據從數據庫顯示到JTable中? 我設法顯示在控制檯中的數據,但IN JTABLE它不顯示即使Jtable沒有出現在Jframe上,但我沒有錯誤。請任何幫助,將不勝感激。Eclipse平臺java如何將數據從db顯示到jtable中

import java.awt.Dimension; 
import java.io.PrintWriter; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 

import javax.swing.JFrame; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 
import javax.swing.table.*; 
import com.mysql.jdbc.Connection; 
import com.mysql.jdbc.Statement; 

public class ju { 
    private static Object request; 
    static JTable mysTable; 
    //constructor method 

    public static void main (String args []){ 

     mysTable = new JTable(3,2); 
     JScrollPane myPanel = new JScrollPane(mysTable,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
               JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 

     mysTable.setPreferredScrollableViewportSize(new Dimension(500,70)); 

     JFrame frame = new JFrame("King Musa Saloon Software"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setLayout(null); 
     frame.setSize(500,500); 
     frame.setVisible(true); 
     frame.add(mysTable); 
     //frame.add(mysTable); 

     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      System.out.println("Driver loading success!"); 
      String url = "jdbc:mysql://localhost:3306/saloon"; 
      String name = "root"; 
      String password = ""; 

      try { 
       java.sql.Connection con = DriverManager.getConnection(url, name, password); 
       System.out.println("Connected."); 
       // pull data from the database 
       java.sql.Statement stmts = null; 
       String query = "select userid, username, name from saloonuser "; 
       stmts = con.createStatement(); 

       ResultSet rs = stmts.executeQuery(query); 
       int li_row = 0; 
       while(rs.next()){ 
        mysTable.setValueAt(rs.getString("username"),li_row,0); 
        mysTable.setValueAt(rs.getString("name"),li_row,0); 
        int userid = rs.getInt("userid"); 
        String username = rs.getString("username"); 
        String name1  = rs.getString("name"); 
        System.out.println(name1); 
        li_row++; 
       } 
      } catch (SQLException e) { 
       e.printStackTrace(); 
      } 

     } catch (ClassNotFoundException e) { 
      e.printStackTrace(); 
     } 
    } 

} 

回答

0

就這麼做了。看看這個:

http://www.java2s.com/Code/Java/Swing-JFC/DisplayResultSetinTableJTable.htm

您發佈的代碼是可怕的。我建議把它扔掉,從頭開始。

解決問題。現在忘記用戶界面。編寫一個DAO,它除了訪問數據庫並將需要的數據帶回外,什麼也不做。測試它並放在一邊。然後從用戶界面開始。給它一個DAO類的實例,只需要擔心顯示它帶回的數據。

+0

我試過了,但沒有成功 –

+0

你試過了什麼?你從該鏈接剪切和粘貼代碼?如果是,發生了什麼? – duffymo

+0

我設法解決了這個問題,但現在Jscroll是probklem –

相關問題