Java 在oracle数据库的JTable中显示数据
我正在检索oracle表并在jtable中显示它。。这是我第一次使用jtable,所以我什么都不知道。我做了研究,尝试了不同的方法,但我没有正确地理解。。 它不在jtable中显示数据Java 在oracle数据库的JTable中显示数据,java,swing,jdbc,jtable,defaulttablemodel,Java,Swing,Jdbc,Jtable,Defaulttablemodel,我正在检索oracle表并在jtable中显示它。。这是我第一次使用jtable,所以我什么都不知道。我做了研究,尝试了不同的方法,但我没有正确地理解。。 它不在jtable中显示数据 DefaultTableModel model = new DefaultTableModel(); jTable1 = new javax.swing.JTable(model); ifevt.getSource==jButton2{ Connection conn=n
DefaultTableModel model = new DefaultTableModel();
jTable1 = new javax.swing.JTable(model);
ifevt.getSource==jButton2{
Connection conn=null;
PreparedStatement ps=null;
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
Vector columns = new Vector();
Statement stmt=null;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","hr");
}
catch(ClassNotFoundException | SQLException e)
{
System.out.println(e);
}
try{
ps=conn.prepareStatement("select * from \"SYSTEM\".NEWUSER");
ResultSet rs = ps.executeQuery();
ResultSetMetaData md = rs.getMetaData();
Vector<String> columnNames = new Vector<String>();
int columnCount = md.getColumnCount();
for (int i = 1; i <= columnCount; i++)
{
columnNames.addElement( md.getColumnName(i) );
}
columns.add(columnNames);
while (rs.next())
{
Vector<Object> row = new Vector<Object>();
for (int i = 1; i <=columnCount; i++)
{
row.addElement( rs.getObject(i) );
}
data.add( row );
//System.out.println("watever");
}
rs.close();
ps.close();
conn.close();
}
catch(SQLException | HeadlessException e)
{
System.out.println("the error is"+e);
}
JTable jTable1 = new JTable(data, columns);
}
我做了更改,但行中仍然没有显示d数据
DefaultTableModel model = new DefaultTableModel();
代码看起来合理,只是模型不包含列。添加一行数据时不会自动创建列
您的代码应该类似于:
String[] columnNames = {"Column1", "Column2", "Column3", "Column4", "Column5"};
DefaultTableModel model = new DefaultTableModel(columnNames, 0);
然后,当您添加行时,您应该会看到5列数据
或者,要获得基于SQL创建列名的更好的解决方案,请参见中的数据库示例代码表。我编辑了d代码并在上面发布了它。您可以看到它。但它仍然不起作用