我试图以JTable
的形式显示表的数据。 我的表在Oracle 10g Express Edition
。 T.name:Doctor 我希望整个表格应该在JTable的帮助下以我的形式显示。无法从JTable中的数据库中获取数据?
class PatientTableFromDatabase extends JFrame
{
static Connection con=null;
Statement st=null;
ResultSet rs=null;
PatientTableFromDatabase()
{
Vector columnNames = new Vector();
Vector data = new Vector();
try
{
// Connect to the Database
try{
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//cn=DriverManager.getConnection("Jdbc:Odbc:pat");
Class.forName("oracle.jdbc.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1522:xe", "hr", "hr");
}
catch(Exception e)
{
//System.out.println(e);
e.printStackTrace();
}
// Read data from a table
String sql = "Select * from Doctor";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
// Get column names
for (int i = 1; i <= columns; i++)
{
columnNames.addElement(md.getColumnName(i));
}
// Get row data
while (rs.next())
{
Vector row = new Vector(columns);
for (int i = 1; i <= columns; i++)
{
row.addElement(rs.getObject(i));
}
data.addElement(row);
}
}
catch(Exception e)
{
System.out.println(e);
//e.printStackTrace();
}
// Create table with database data
JTable table = new JTable(data, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane);
/* JPanel buttonPanel = new JPanel();
getContentPane().add(buttonPanel, BorderLayout.SOUTH);*/
}
public static void main(String[] args)
{
PatientTableFromDatabase frame = new PatientTableFromDatabase();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
当我运行框架出现,但没有数据,没有表。 请帮忙!! 感谢
纠正,但随后也同样的事情,只出现帧,没有桌子,在cmd中显示java.lang.NullPointerException没有data.And戒烟后。 – user3367768
@ user3367768打印堆栈跟踪 – SpringLearner
我得到这个 java.lang.NullPointerException java.lang.NullPointerException at PatientTableFromDatabase。 at PatientTableFromDatabase.main –
user3367768