jtable在编辑时将“”带入数据库

时间:2013-10-02 17:18:31

标签: java swing jtable null-pointer

这是我的示例代码

DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
   int colum=jTable1.getSelectedColumn();
   int row=jTable1.getSelectedRow();
   System.out.println("row of selected is "+row+"col is "+colum);
    String remark1 = (String) jTable1.getValueAt(row, 8);
    String remark2 = (String) jTable1.getValueAt(row, 9);
     String stock = (String) jTable1.getValueAt(row, 10);
     String invoiceno =(String) jTable1.getValueAt(row, 11);            
    String id=(String) jTable1.getValueAt(row, 12);
    System.out.println("remark1: "+remark1+" ,remark2: "+remark2+",stock:"+stock+", invoiceno:"+invoiceno+ " ,id: "+id);

当我在编辑模式下打开jTable1并在没有输入文本的情况下出来并执行动作生成如下输出

remark1:  ,remark2: ,stock: , invoiceno: ,id: 7e3c63ffc9bc42dba8155270741d7c9a

当我将该行发送到该字段的数据库时,它会在那些字段中取" ..这就是我的问题。当我进入编辑模式而没有编辑文本/添加文本时,如何不将"发送到数据库中

我尝试添加此

line 426: if(invoiceno.equals("")){
         invoiceno=null;
     }

如果我进入invoiceno jTable1的编辑模式并出来,它的传递参数invoiceno=null并且正常工作。 但是如果我不进入那一行(editmode)然后发送到数据库然后在java.lang.NullPointerException显示空line:426

1 个答案:

答案 0 :(得分:1)

您可以撤消验证,

if ("".equals(invoiceno)) {
  invoiceno = null;
}

相反,如果NullPointerExceptioninvoiceno,则不会抛出null