首先,我有一个数据库连接,它的设置和工作,现在的问题 - 我有一个搜索按钮,它有一个actionlistener连接,当它被点击它应该填充一个JTable,但表没有被填充,我无法弄清楚为什么!下面显示了我的连接代码和试图填充表的代码。JTable没有被填充数据从数据库中提取
public void search()
{
btnSearch.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
//String name = txtname.getText();
String dataSourceName = "securitySystem";
String dbUrl = "jdbc:odbc:" + dataSourceName;
try{
//Type of connection driver used
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//Connection variable or object param: dbPath, userName, password
Connection con = DriverManager.getConnection(dbUrl, "", "");
Statement statement = con.createStatement();
ResultSet rs = statement.executeQuery("select * from accesshistory");
String name = "";
DefaultTableModel model;
model = new DefaultTableModel();
tableAccess = new JTable(model);
model.addColumn("Full Name");
while(rs.next())
{
name = rs.getString("Name");
model.addRow(new Object[]{name});
}
statement.close();
con.close();
}catch (Exception e) {
try {
throw e;
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});
的问题,你可以尝试添加'model.fireTableDataChanged()'和'model.fir eTableStrukruteChanged()'while循环后 我个人认为这不是用'JTables'和'DefaultTableModel'处理的最好方法吗? – Stone
你能否给我一个方向从哪里开始,然后什么是最好的在这个情景练习? –
正如我在学校学到的那样,您应该创建一个数据库类,以便处理所有SQL查询。
比你应该在这个类中创建一个从'defaultTableModel'扩展的类,你可以覆盖你需要的方法。如'addColumn'和'addRow',如果你想我可以给你一个例子类。 – Stone