Java 当我尝试将数据插入数据库时,我的jtable出现NullPointerException错误
我对java和netbeans真的很陌生。。。我想将数据从jtable发送到数据库。在参考了大量代码后,我设法想出了以下代码。 但是当我运行它时,它会给我一个错误:java.lang.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
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();