我已经从C#迁移到java,所以我是java技术的新手。
我尝试使用 DefaultTableModel 将数据从 SQLSERVER 填充到 jTable 。代码就在这里。
public class mainScreen extends javax.swing.JFrame {
public mainScreen() {
initComponents();
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
"databaseName=Northwind;user=im;password=123;";
Connection con = DriverManager.getConnection(connectionUrl);
Statement stmt = null;
ResultSet rs = null;
// SQL query command
String SQL = "SELECT * FROM Products";
stmt = con.createStatement();
rs = stmt.executeQuery(SQL);
ResultSetMetaData mtd=rs.getMetaData();
int columns=mtd.getColumnCount();
Vector columnName=new Vector();
Vector DataRows=new Vector();
DefaultTableModel dtm=new DefaultTableModel();
for(int i=1; i<columns; i++)
{
columnName.addElement(mtd.getColumnName(i));
}
dtm.setColumnIdentifiers(columnName);
while (rs.next()) {
for(int j=1; j<columns; j++){
DataRows.addElement(rs.getString(j));
//System.out.println(rs.getString(j));
}
}
Enumeration e= DataRows.elements();
while(e.hasMoreElements())
{
System.out.println(e.nextElement());
}
dtm.addRow(DataRows);
myTable.setModel(dtm);
dtm.fireTableDataChanged();
} catch (SQLException e) {
System.out.println("SQL Exception: "+ e.toString());
} catch (ClassNotFoundException cE) {
System.out.println("Class Not Found Exception: "+ cE.toString());
}
}
问题是这只显示第一行。任何人都可以指导我吗?
答案 0 :(得分:0)
您的代码中存在多个错误
检查你的while循环
while(rs.next())
如果它在正确的位置结束
您继续向同一DataRow添加元素。这不是为你的表创建一个新行。