2013-05-28 45 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 –

相关问题