2011-11-17 148 views

回答

2

另外,请记住,MVC是游戏的名称。扩展AbstractTableModel以创建一个将数据提供给JTable的模型。

您需要实现以下方法:

public int getRowCount() 
public int getColumnCount() and 
public Object getValueAt(int rowIndex, int columnIndex) 

,最后设置你的模型到JTable:

myJTable.setModel(new MyModel()); 

事情是这样的:

public class MyModel extends AbstractTableModel { 

    private Connection con; 
    private Statement stmt; 
    private ResultSet rs; 

    public MyModel() { 

     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      try { 
       con = DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename?useUnicode=true&characterEncoding=UTF-8", 
         "root", "password"); 
       stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); 
       rs = stmt.executeQuery("select * from tablename"); 

      } catch (SQLException e) { 
       String msg = "MyModel(): Error Connecting to Database:\n" 
         + e.getMessage(); 
       System.out.println(msg); 
      } 
     } catch (ClassNotFoundException e) { 
      String msg = "The com.mysql.jdbc.Driver is missing\n" 
        + "install and rerun the application"; 
      System.out.println(msg); 
      System.exit(1); 
     } finally { 

     } 
    } 

    public int getRowCount() { 
// count your rows and return 
     return count; 
    } 

    public int getColumnCount() { 
// how many cols will you need goes here 
     return 3; 
    } 

    public Object getValueAt(int rowIndex, int columnIndex) { 
     try { 
      rs.absolute(rowIndex + 1); 
      switch (columnIndex) { 
       case 0: 
        return rs.getInt(1); 
       case 1: 
        return rs.getString(2); 
       case 2: 
        return rs.getString(6); 
       default: 
        return null; 
      } 
     } catch (SQLException ex) { 
      System.out.println(ex.getMessage()); 
     } 
     return null; 
    } 
} 
+0

你可以给的代码? – user1016195

+0

的代码了:-) –

3

在没有关于这个细节的任何信息,我建议你先从如何从数据库中提取的数据JDBC tutorial。然后,JTable tutorial将帮助您显示。

1

你可以导入DbUtils并用它来将数据库导入到JTable中,像这样:

Class.forName("com.mysql.jdbc.Driver"); 
 
Connection connectionToDB = (Connection)DriverManager.getConnection(hostname, user,pw); 
 
PreparedStatement preparedStatement = connectionToDB.prepareStatement("SELECT * FROM Table;"); 
 
ResultSet resultSetForFullTable = preparedStatement.executeQuery(); 
 
dbTable.setModel(DbUtils.resultSetToTableModel(resultSetForFullTable));
为DbUtils import语句是
import net.proteanit.sql.DbUtils;

+0

这不是在Maven的工作 – praguan

相关问题