2017-05-12 5 views
-1

javaとnetbeansには本当に新しい...私はjtableからデータベースにデータを送りたいと思っています。次のコードを思い付く。 私はそれを実行すると、エラー:java.lang.NullPointerExceptionが返されます。私は本当にどこにエラーが見つかりません。データベースにデータを挿入しようとすると、jtableのNullPointerExceptionエラーが発生する

これは私がこれを解決するために助けてください、

try{  
     int rows = jTable2.getRowCount(); 
     //int cols = jTable2.getColumnCount(); 
     String myUrl = "jdbc:mySql://localhost:3306/hospital"; 
     Connection con = DriverManager.getConnection(myUrl,"root",""); 
     con.setAutoCommit(false); 

     String query = "insert into invoice (In_id,Admission_A_id,Hospital_Charges,Doctor_Charges,Doctor_visit_charge,Medicine_charge,Food_charge,Total) values (?,?,?,?,?,?,?,?)"; 

     PreparedStatement pst = con.prepareStatement(query); 
     for(int row=0; row<rows; row++){ 

       String st1 = jTable2.getValueAt(row, 0).toString(); 
       int HosCharge = Integer.parseInt(st1); 
       String st2 = jTable2.getValueAt(row, 1).toString(); 
       int DocCharge = Integer.parseInt(st2); 
       String st3 = jTable2.getValueAt(row, 2).toString(); 
       int DocVisitCharge = Integer.parseInt(st3); 
       String st4 = jTable2.getValueAt(row, 3).toString(); 
       int MedCharge = Integer.parseInt(st4); 
       String st5 = jTable2.getValueAt(row, 4).toString(); 
       int FoodCharge = Integer.parseInt(st5); 
       String st6 = jTable2.getValueAt(row, 5).toString(); 
       int Total = Integer.parseInt(st6); 




      pst.setInt(1,Integer.parseInt(tt1.getText())); 
      pst.setInt(2, Integer.parseInt(tt2.getText())); 
      pst.setInt(3,HosCharge); 
      pst.setInt(4,DocCharge); 
      pst.setInt(5, DocVisitCharge); 
      pst.setInt(6,MedCharge); 
      pst.setInt(7,FoodCharge); 
      pst.setInt(8,Total); 

      pst.addBatch(); 



     } 
     pst.executeBatch(); 
     con.commit(); 
     con.close(); 


    } 

    catch(Exception e){ 
     e.printStackTrace(); 
    }// TODO add your handling code here: 

私のコードです。

+0

NullPointerExceptionには行番号があります。その行で、どのオブジェクトがnullでもかまいません。 –

+0

エラーは 'String st6 = jTable2.getValueAt(row、5).toString();'この行私のテーブルには6列あります。私の索引付けに何か問題がありますか? – maneesha

+0

jTable2は上にあるようです(st5 = ...)、getValue(row、5)で何かをしなければなりません。その行に6番目の要素がないことがありますか? –

答えて

1
String st6 = jTable2.getValueAt(row, 5).toString(); 

ですから、上記の声明が原因です。

コード行を見つめていない場合、基本的な問題解決方法を知っていますか?

最初に行うべきことは、各コード行で1つのステートメントだけを呼び出すようにコードを単純化することです。さらに、2つのステートメントで使用されている各変数の値を表示することができます。

System.out.println("Table: " + jTable2); 
Object cellData = jTable2.getValueAt(row, 5); 
System.out.println("Data: " + cellData); 
String st5 = cellData.toString(); 

あなたはどうなると思いますか?問題がどこにあるかを示す別の行番号が表示されるので、問題は表変数または表内のデータのいずれかであることがわかります。問題が解決したことがわかったら

これは標準的なデバッグです。単純なNullPointerExceptionを取得するたびに質問をすることはできません!

関連する問題