Java 如何将数据库中的所有数据显示到jtable?
我们有一个名为datasindatabase的表,我们希望使用netbeanside检索和显示JTable组件中的所有数据。数据库中的每一行都应该显示在jtable中。如果没有关于这方面的详细信息,我建议您从如何从数据库中提取数据开始。然后,将帮助您显示此信息。此外,请记住MVC是游戏的名称。扩展AbstractTableModel以创建一个将向JTable提供数据的模型 您需要实现以下方法:Java 如何将数据库中的所有数据显示到jtable?,java,swing,netbeans,jdbc,jtable,Java,Swing,Netbeans,Jdbc,Jtable,我们有一个名为datasindatabase的表,我们希望使用netbeanside检索和显示JTable组件中的所有数据。数据库中的每一行都应该显示在jtable中。如果没有关于这方面的详细信息,我建议您从如何从数据库中提取数据开始。然后,将帮助您显示此信息。此外,请记住MVC是游戏的名称。扩展AbstractTableModel以创建一个将向JTable提供数据的模型 您需要实现以下方法: public int getRowCount() public int getColumnCount(
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;
}
}
您可以导入DbUtils并使用它将数据库导入JTable,如下所示:
Class.forName(“com.mysql.jdbc.Driver”);
ConnectionConnectionDB=(Connection)DriverManager.getConnection(主机名、用户、pw);
PreparedStatement PreparedStatement=connectionDB.prepareStatement(“从表中选择*”);
ResultSet resultSetForFullTable=preparedStatement.executeQuery();
setModel(DbUtils.resultSetToTableModel(resultSetForFullTable))代码>