所以我刚刚开始制作一个示例项目,在哪里可以插入连接到数据库的Employee和Department。当我尝试在我的字段上插入一些值时。按下“添加”按钮后,标题或列隐藏。任何帮助都会很感激!
CODES
String inputEmployee = employeeTf.getText();
String inputDepartment = departmentTf.getText();
if(inputEmployee.isEmpty() && inputDepartment.isEmpty()){
JOptionPane.showMessageDialog(null, "Please fill up!");
}
else if(inputEmployee.isEmpty()){
JOptionPane.showMessageDialog(null, "Employee Name should not be left blank");
}
else if(inputDepartment.isEmpty()){
JOptionPane.showMessageDialog(null, "Department should not be left blank");
}
else{
DefaultTableModel model = new DefaultTableModel();
jTable.setModel(model);
Object[] row = new Object[2];
String myQuery = "INSERT INTO SAMPLE (EMPLOYEENAME,DEPARTMENT) VALUES (?,?)";
try{
Connection myCon = DBUtilities.getConnection(DBType.JDBC);
PreparedStatement myPs = myCon.prepareStatement(myQuery);
myPs.setString(1, employeeTf.getText());
myPs.setString(2, departmentTf.getText());
row[0] = employeeTf.getText();
row[1] = departmentTf.getText();
myPs.executeUpdate();
System.out.print("Record is inserted");
} catch (SQLException ex) {
DBUtilities.processException(ex);
}
finally {
try {
if(myPs != null) myPs.close();
if(myCon != null) myCon.close();
} catch (SQLException e) {
System.out.println("Error is: " + e.getMessage());
}
}
当我尝试在Employee字段中插入John和在Department字段中插入BSIT时。标题消失。
正如您在此处所见,标题/列消失了。我错过了什么?感谢
答案 0 :(得分:1)
DefaultTableModel model = new DefaultTableModel();
jTable.setModel(model);
您创建一个没有任何列的新TableModel。不要创建新的TableModel。
而只是使用JTable中的当前TableModel(因为它已经包含列名)来添加新的数据行:
//DefaultTableModel model = new DefaultTableModel();
//jTable.setModel(model);
DefaultTableModel model = (DefaultTableModel)tTable.getModel();
然后,当您使用数据更新数据库时,您可以同时更新表。
myPs.executeUpdate();
model.addRow( row );
当然,这假设您实际上首先使用DefaultTableModel创建了JTable。