Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我尝试将数据插入数据库时,我的jtable出现NullPointerException错误_Java_Mysql_Swing_Nullpointerexception - Fatal编程技术网

Java 当我尝试将数据插入数据库时,我的jtable出现NullPointerException错误

Java 当我尝试将数据插入数据库时,我的jtable出现NullPointerException错误,java,mysql,swing,nullpointerexception,Java,Mysql,Swing,Nullpointerexception,我对java和netbeans真的很陌生。。。我想将数据从jtable发送到数据库。在参考了大量代码后,我设法想出了以下代码。 但是当我运行它时,它会给我一个错误:java.lang.NullPointerException。我真的找不到错误在哪里 这是我的密码 try{ int rows = jTable2.getRowCount(); //int cols = jTable2.getColumnCount(); String myUrl

我对java和netbeans真的很陌生。。。我想将数据从jtable发送到数据库。在参考了大量代码后,我设法想出了以下代码。 但是当我运行它时,它会给我一个错误:java.lang.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:
试试{
int rows=jTable2.getRowCount();
//int cols=jTable2.getColumnCount();
String myUrl=“jdbc:mySql://localhost:3306/hospital”;
Connection con=DriverManager.getConnection(myUrl,“根目录”,“根目录”);
con.setAutoCommit(假);
String query=“插入发票(输入id、入院id、医院费用、医生费用、医生就诊费用、药品费用、食品费用、总计)值(?,,,,,,,,?)”;
PreparedStatement pst=con.prepareStatement(查询);
对于(int row=0;row)
因此,上述陈述是问题的根源

如果盯着一行代码看没有帮助,那么你知道如何解决基本问题吗

首先要做的是简化代码,以便在每行代码中只调用一个station。此外,还可以显示两个语句中使用的每个变量的值:

System.out.println("Table: " + jTable2);
Object cellData = jTable2.getValueAt(row, 5);
System.out.println("Data: " + cellData);
String st5 = cellData.toString();
现在你认为会发生什么?你会得到一个不同的行号,告诉你问题出在哪里,这样你就会知道问题出在表变量或表中的数据上。一旦你知道你解决了问题


这是标准调试。不能每次得到一个简单的NullPointerException时都问问题!!!

NullPointerException中有一个行号。在该行中搜索哪个对象可以为null。错误是“String st6=jTable2.getValueAt(第5行)。toString();'这一行。我的表中有6列。我的索引中是否有错误???由于jTable2似乎在上面有一行(st5=…),它必须与getValue(行,5)有关。可能是该行中没有第6个元素?当从1开始我的索引时,错误转到'String st5=jTable2.getValueAt(行,4).toString();“这一行在我更改索引后更改为(第5行)。是的,我想是的。这就是我尝试更改索引的原因。但仍然没有用
System.out.println("Table: " + jTable2);
Object cellData = jTable2.getValueAt(row, 5);
System.out.println("Data: " + cellData);
String st5 = cellData.toString();