从oracle数据库显示JTable中的数据[重复]
Posted
技术标签:
【中文标题】从oracle数据库显示JTable中的数据[重复]【英文标题】:Displaying data in JTable from oracle database [duplicate] 【发布时间】:2013-07-27 04:24:15 【问题描述】:我正在检索一个 oracle 表并将其显示在 jtable 中。这是我第一次使用 jtable,所以我什么都不知道。我做了我的研究并尝试了不同的方法,但我并不正确地理解.. 它没有在 jtable 中显示数据。
DefaultTableModel model = new DefaultTableModel();
jTable1 = new javax.swing.JTable(model);
if(evt.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 数据..
【问题讨论】:
【参考方案1】:DefaultTableModel model = new DefaultTableModel();
除了模型不包含列之外,代码看起来很合理。添加一行数据时不会自动创建列。
你的代码应该是这样的:
String[] columnNames = "Column1", "Column2", "Column3", "Column4", "Column5";
DefaultTableModel model = new DefaultTableModel(columnNames, 0);
然后,当您添加行时,您应该会看到 5 列数据。
或者,对于将基于 SQL 创建列名的更好的解决方案,请参阅 Table From Database 中的 Table From Database Example
代码。
【讨论】:
我编辑了 d 代码并将其发布在上面.. 你可以看到它。但它仍然无法正常工作以上是关于从oracle数据库显示JTable中的数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何通过SQL将一列JCheckBox添加到JTable? [重复]