我正在尝试将defaulttablemodel的所有值保存到我的sql数据库中,但每当我尝试通过table.valueAt()在最后插入的行上打印值时,它返回null。
try{
System.out.print(table.getValueAt(5,0)); //<- this returns null even if the table.getRowCount() is 6
for(int i=0; i<table.getRowCount();i++){
if((Boolean)table.getValueAt(i,1)) val=1;
else val=0;
//System.out.print(table.getValueAt(i, 0) +","+ val);
String sql1 = "INSERT INTO HREmpListofCard (EmpID, CardNbr, Status, Remarks) VALUES ("
+"'"+empID
+"','"+table.getValueAt(i, 0).toString()
+"','"+val
+"','"+table.getValueAt(i,2).toString()+"')";
try {
DBConnect.getConnection().createStatement().executeUpdate(sql1);
} catch (ClassNotFoundException ex) {
Logger.getLogger(ListOfCardID.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(ListOfCardID.class.getName()).log(Level.SEVERE, null, ex);
}
}
}catch(Exception e){
System.out.print("\nerror!");
}
答案 0 :(得分:0)
至于你的第二个问题。 在将变量放入查询之前,可以检查表中的变量。例如,您可以这样做:
String item1;
if(table.getValueAt(i, 0) != null)
item1 = table.getValueAt(i, 0);
else
item1 = null;
将item1替换为“table.getValueAt(i,0)”并为“table.getValueAt(i,2)”创建一个item2
String sql1 = "INSERT INTO HREmpListofCard (EmpID, CardNbr, Status, Remarks) VALUES ("
+"'"+empID
+"','"+ITEM1
+"','"+val
+"','"+ITEM2+"')";
我没有测试过这个,所以我不确定它是否会起作用:)
祝你好运!